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); |