From 863d42af0621b321f1571948065f53c05f3ad833 Mon Sep 17 00:00:00 2001 From: Marc Schoolderman Date: Fri, 9 Jul 2021 19:22:30 +0200 Subject: [PATCH] properly set the 'step' to fix the bug introduced in ab5eb3a1af5f3d2335 --- id3v2.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/id3v2.c b/id3v2.c index 758ab10..7702187 100644 --- a/id3v2.c +++ b/id3v2.c @@ -174,16 +174,15 @@ static ulong unsync_frames_v2_4(uchar *buf, ulong size) while(buf < end) { union raw_frm *frame = (union raw_frm*)buf; - ulong step = ul4ss(frame->v3.size); + ulong step = ul4ss(frame->v3.size) + sizeof(frame->v3); if( frame->v3.flags[1] & UNSYNC4 ) { frame = (union raw_frm*)out; memmove(out, buf, sizeof(frame->v3)); - out = unsync_dec(out+sizeof(frame->v3), buf+sizeof(frame->v3), step); + out = unsync_dec(out+sizeof(frame->v3), buf+sizeof(frame->v3), step-sizeof(frame->v3)); /* update frame size & clear UNSYNC4 bit */ nbo4ss(frame->v3.size, out-frame->ID - sizeof(frame->v3)); frame->v3.flags[1] &= ~UNSYNC4; } else { - step += sizeof(frame->v3); out = (uchar*)memmove(out, buf, step) + step; } buf += step;