id3v24.diff
| src/libaudtag/id3/id3v24.cc | ||
|---|---|---|
| 331 | 331 |
header.size = (version == 3) ? FROM_BE32 (header.size) : unsyncsafe32 (FROM_BE32 (header.size)); |
| 332 | 332 |
header.flags = FROM_BE16 (header.flags); |
| 333 | 333 | |
| 334 |
if (header.size > (unsigned) max_size || header.size == 0)
|
|
| 334 |
if (header.size > (unsigned) max_size) |
|
| 335 | 335 |
return false; |
| 336 | 336 | |
| 337 | 337 |
AUDDBG ("Found frame:\n");
|
| ... | ... | |
| 350 | 350 |
if (header.flags & ID3_FRAME_HAS_LENGTH) |
| 351 | 351 |
skip += 4; |
| 352 | 352 | |
| 353 |
if (skip >= header.size) |
|
| 354 |
return false; |
|
| 355 | ||
| 356 | 353 |
* frame_size = sizeof (ID3v24FrameHeader) + header.size; |
| 357 | 354 | |
| 358 | 355 |
frame.key = String (str_copy (header.key, 4)); |
| 359 | 356 |
frame.clear (); |
| 360 |
frame.insert (data + skip, 0, header.size - skip); |
|
| 357 | ||
| 358 |
if (header.size > skip) |
|
| 359 |
frame.insert (data + skip, 0, header.size - skip); |
|
| 361 | 360 | |
| 362 | 361 |
if (header.flags & ID3_FRAME_SYNCSAFE) |
| 363 | 362 |
unsyncsafe (frame); |
