Skip to content

Commit abbce70

Browse files
committed
avoid buffer overrun when populating track_hdlr_name
speculative fix for #30
1 parent 35e9824 commit abbce70

File tree

2 files changed

+4
-2
lines changed

2 files changed

+4
-2
lines changed

src/AtomicParsley.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@
122122
#endif
123123

124124
#include "util.h"
125+
#include <algorithm>
125126

126127
#define MAX_ATOMS 2048
127128
#define MAXDATA_PAYLOAD 1256

src/extracts.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1282,11 +1282,12 @@ void APar_ExtractTrackDetails(char *uint32_buffer,
12821282
track_info->type_of_track = VIDEO_TRACK;
12831283
}
12841284
if (parsedAtoms[track->track_atom].AtomicLength > 34) {
1285-
memset(track_info->track_hdlr_name, 0, 100);
1285+
memset(track_info->track_hdlr_name, 0, sizeof(track_info->track_hdlr_name));
12861286
APar_readX(track_info->track_hdlr_name,
12871287
isofile,
12881288
parsedAtoms[track->track_atom].AtomicStart + 32,
1289-
parsedAtoms[track->track_atom].AtomicLength - 32);
1289+
std::min(sizeof(track_info->track_hdlr_name),
1290+
parsedAtoms[track->track_atom].AtomicLength - 32));
12901291
}
12911292

12921293
// codec section

0 commit comments

Comments
 (0)