Skip to content

Commit

Permalink
Handle MOV sample descriptions entry count bounds
Browse files Browse the repository at this point in the history
Contributes to #561
  • Loading branch information
drewnoakes committed Apr 3, 2022
1 parent 7ae0389 commit 537132e
Showing 1 changed file with 12 additions and 5 deletions.
17 changes: 12 additions & 5 deletions Source/com/drew/metadata/mov/atoms/SampleDescriptionAtom.java
Original file line number Diff line number Diff line change
Expand Up @@ -33,17 +33,24 @@
*/
public abstract class SampleDescriptionAtom<T extends SampleDescription> extends FullAtom
{
long numberOfEntries;
ArrayList<T> sampleDescriptions;
protected long numberOfEntries;
protected ArrayList<T> sampleDescriptions;

public SampleDescriptionAtom(SequentialReader reader, Atom atom) throws IOException
{
super(reader, atom);

numberOfEntries = reader.getUInt32();
sampleDescriptions = new ArrayList<T>((int)numberOfEntries);
for (int i = 0; i < numberOfEntries; i++) {
sampleDescriptions.add(getSampleDescription(reader));

if (numberOfEntries <= Integer.MAX_VALUE) {
sampleDescriptions = new ArrayList<T>((int)numberOfEntries);
for (long i = 0; i < numberOfEntries; i++) {
sampleDescriptions.add(getSampleDescription(reader));
}
} else {
// TODO surface an error here
numberOfEntries = 0;
sampleDescriptions = new ArrayList<T>();
}
}

Expand Down

0 comments on commit 537132e

Please sign in to comment.