Nathan ChandrasekarandGitHub 50ca520b27 ByteVector, List: Check indices if the standard library does (#1467)
If the standard library checks the index in std::vector::operator[]
(_GLIBCXX_ASSERTIONS, libc++ hardening modes), ByteVector::operator[]
and List::operator[] now check the index against their own size and
abort if it is out of range, as std::vector does.

The std::vector check alone is not enough: a ByteVector created by
mid() shares the buffer of the original byte vector, so an index past
the end of the smaller vector still passes it. List::operator[] walks
a std::list, which these checks do not cover.

Builds without these macros are unchanged; a GCC Release build of
libtag produces identical code. The Ubuntu CI job now builds with
-D_GLIBCXX_ASSERTIONS so that the tests run with the checks enabled.
2026-10-31 12:07:55 +01:00
2026-09-05 06:17:23 +02:00
2022-10-24 07:06:23 +02:00
2015-05-18 11:31:55 +02:00
2023-10-08 05:58:33 +02:00
2023-09-16 08:41:01 +02:00
2026-09-05 06:17:23 +02:00
2024-01-04 17:18:23 +01:00
2026-02-18 05:15:14 +01:00

TagLib

Build Status

TagLib Audio Metadata Library

https://taglib.org/

TagLib is a library for reading and editing the metadata of several popular audio formats. Currently, it supports various metadata containers such as ID3v1, ID3v2 and Vorbis comments for MP3, MP4, AAC, Ogg, Opus, FLAC, Speex, APE, MPC, WavPack, WAV, AIFF, TrueAudio, Matroska, WebM, ASF, WMA, DSF, DFF and tracker (MOD, XM, S3M, IT) files.

TagLib is distributed under the GNU Lesser General Public License (LGPL) and Mozilla Public License (MPL). Essentially that means that it may be used in proprietary applications, but if changes are made to TagLib they must be contributed back to the project. Please review the licenses if you are considering using TagLib in your project.

S
Description
No description provided
Readme
16 MiB
Languages
C++ 96.6%
CMake 1.8%
C 0.8%
Python 0.5%
Logos 0.3%