ISO9660 fs extraction on Dynasty Warriors 6 (Russia).iso fails due to out of bounds array reading #1023

Open
opened 2026-01-29 15:39:07 +00:00 by claunia · 0 comments
Owner

Originally created by @HeroponRikiBestest on GitHub (Oct 31, 2025).

Version

6.0.0-alpha.14

Commit hash

No response

Tested debug version?

  • Yes

Which operating systems have you used?

  • Windows
  • Linux
  • macOS
  • Other

What is the architectural bit size you're using?

  • 32-bit
  • 64-bit
  • Unsure or unknown

What processor are you using?

  • An Intel or AMD
  • An ARM or Apple Silicon
  • Unsure or unknown

Image format

ISO9660

Application that created the image

redumper

What were you doing when it failed?

  • I was converting the image to another format...
  • I was retrieving image information...
  • I was retrieving filesystem information...
  • I was listing the filesystem contents...
  • I was extracting the filesystem contents...
  • I was creating a metadata sidecar...
  • I was checksumming the image...
  • I was verifying the image...
  • I was calculating the image entropy...

Destination image format

No response

Filesystem

ISO9660

Description

Attempting to extract http://redump.org/disc/116473/ results in the extraction failing due to trying to read outside the bounds of a source array.

If necessary to confirm, ISObuster is able to extract the iso9660 FS properly, so it's not a broken ISO9660 fs issue.

Exact command line used

aaru/aaru fs extract "Dynasty Warriors 6 (Russia).iso" aaru_output -v -d

Expected behavior

I expected the image to extract properly.

Actual behavior

It crashed.

Output of command execution with debug output enabled

aaru 6.0.0-alpha.14+db50b36d
Copyright © 2011-2025 Natalia Portillo

Identifying file filter...: 0%
Identifying image format...: 0%
Image format identified by Raw Disk Image.
Opening image file...: 0%
Enumerating partitions...: 0%
1 partitions found.

Partition 0:
Identifying filesystems on partition...: 0%
Identified by 2 plugins
As identified by ISO9660 Filesystem.
Mounting filesystem...: 0%
Written 77878 bytes of file 00000000.256 to aaru_output/iso9660/DW6WIN_RUE/00000000.256
Written 20482048 bytes of file 00000001.TMP to aaru_output/iso9660/DW6WIN_RUE/00000001.TMP
Written 317440 bytes of file 00000002.TMP to aaru_output/iso9660/DW6WIN_RUE/00000002.TMP
Created subdirectory at aaru_output/iso9660/DW6WIN_RUE/419
Written 156056 bytes of file autorun.bmp to aaru_output/iso9660/DW6WIN_RUE/419/autorun.bmp
Written 156056 bytes of file autorun.bmp to aaru_output/iso9660/DW6WIN_RUE/autorun.bmp
Written 312600 bytes of file autorun.exe to aaru_output/iso9660/DW6WIN_RUE/autorun.exe
Written 195 bytes of file AUTORUN.INF to aaru_output/iso9660/DW6WIN_RUE/AUTORUN.INF
Written 46136 bytes of file cright.bmp to aaru_output/iso9660/DW6WIN_RUE/cright.bmp
Written 365568000 bytes of file Data1.cab to aaru_output/iso9660/DW6WIN_RUE/Data1.cab
Reading file Data11.cab...: 42%
[13:47:20 ERR] Error reading file: Source array was not long enough. Check the source index, length, and the array's lower bounds. (Parameter 'sourceArray')
System.ArgumentException: Source array was not long enough. Check the source index, length, and the array's lower bounds. (Parameter 'sourceArray')
  at void System.Array.CopyImpl(Array sourceArray, int sourceIndex, Array destinationArray, int destinationIndex, int length, bool reliable)                      
  at ErrorNumber Aaru.Filesystems.ISO9660.ReadFile(IFileNode node, long length, byte[] buffer, out long read)                                                     
  at void Aaru.Commands.Filesystem.ExtractFilesCommand.<>c__DisplayClass3_6.<ExtractFilesInDir>b__2(ProgressContext ctx)                                          
  at Task Spectre.Console.Progress.<>c__DisplayClass29_0.<Start>b__0(ProgressContext ctx) in /_/src/Spectre.Console/Live/Progress/Progress.cs:70                  
  at void Spectre.Console.Progress.<>c__DisplayClass31_0.<<StartAsync>b__0>d.MoveNext() in /_/src/Spectre.Console/Live/Progress/Progress.cs:103                   
  at void Spectre.Console.Progress.<>c__DisplayClass32_0`1.<<StartAsync>b__0>d.MoveNext() in /_/src/Spectre.Console/Live/Progress/Progress.cs:138                 
  at async Task<T> Spectre.Console.Internal.DefaultExclusivityMode.RunAsync<T>(Func<Task<T>> func) in /_/src/Spectre.Console/Internal/DefaultExclusivityMode.cs:40
  at async Task<T> Spectre.Console.Progress.StartAsync<T>(Func<ProgressContext, Task<T>> action) in /_/src/Spectre.Console/Live/Progress/Progress.cs:121          
  at async Task Spectre.Console.Progress.StartAsync(Func<ProgressContext, Task> action) in /_/src/Spectre.Console/Live/Progress/Progress.cs:101                   
  at void Spectre.Console.Progress.Start(Action<ProgressContext> action) in /_/src/Spectre.Console/Live/Progress/Progress.cs:74                                   
  at void Aaru.Commands.Filesystem.ExtractFilesCommand.ExtractFilesInDir(string path, IReadOnlyFilesystem fs, string volumeName, string outputDir, bool doXattrs) 
  at int Aaru.Commands.Filesystem.ExtractFilesCommand.Execute(CommandContext context, Settings settings)                                                          
Error reading file: Source array was not long enough. Check the source index, length, and the array's lower bounds. (Parameter 'sourceArray')
Uploading statistics

Affected image

http://redump.org/disc/116473/ Dynasty Warriors 6 (Russia).iso
Too large to upload; let me know if you have issues obtaining it.

Originally created by @HeroponRikiBestest on GitHub (Oct 31, 2025). ### Version 6.0.0-alpha.14 ### Commit hash _No response_ ### Tested debug version? - [x] Yes ### Which operating systems have you used? - [ ] Windows - [x] Linux - [ ] macOS - [ ] Other ### What is the architectural bit size you're using? - [ ] 32-bit - [x] 64-bit - [ ] Unsure or unknown ### What processor are you using? - [x] An Intel or AMD - [ ] An ARM or Apple Silicon - [ ] Unsure or unknown ### Image format ISO9660 ### Application that created the image redumper ### What were you doing when it failed? - [ ] I was converting the image to another format... - [ ] I was retrieving image information... - [ ] I was retrieving filesystem information... - [ ] I was listing the filesystem contents... - [x] I was extracting the filesystem contents... - [ ] I was creating a metadata sidecar... - [ ] I was checksumming the image... - [ ] I was verifying the image... - [ ] I was calculating the image entropy... ### Destination image format _No response_ ### Filesystem ISO9660 ### Description Attempting to extract http://redump.org/disc/116473/ results in the extraction failing due to trying to read outside the bounds of a source array. If necessary to confirm, ISObuster is able to extract the iso9660 FS properly, so it's not a broken ISO9660 fs issue. ### Exact command line used `aaru/aaru fs extract "Dynasty Warriors 6 (Russia).iso" aaru_output -v -d` ### Expected behavior I expected the image to extract properly. ### Actual behavior It crashed. ### Output of command execution with debug output enabled ```shell aaru 6.0.0-alpha.14+db50b36d Copyright © 2011-2025 Natalia Portillo Identifying file filter...: 0% Identifying image format...: 0% Image format identified by Raw Disk Image. Opening image file...: 0% Enumerating partitions...: 0% 1 partitions found. Partition 0: Identifying filesystems on partition...: 0% Identified by 2 plugins As identified by ISO9660 Filesystem. Mounting filesystem...: 0% Written 77878 bytes of file 00000000.256 to aaru_output/iso9660/DW6WIN_RUE/00000000.256 Written 20482048 bytes of file 00000001.TMP to aaru_output/iso9660/DW6WIN_RUE/00000001.TMP Written 317440 bytes of file 00000002.TMP to aaru_output/iso9660/DW6WIN_RUE/00000002.TMP Created subdirectory at aaru_output/iso9660/DW6WIN_RUE/419 Written 156056 bytes of file autorun.bmp to aaru_output/iso9660/DW6WIN_RUE/419/autorun.bmp Written 156056 bytes of file autorun.bmp to aaru_output/iso9660/DW6WIN_RUE/autorun.bmp Written 312600 bytes of file autorun.exe to aaru_output/iso9660/DW6WIN_RUE/autorun.exe Written 195 bytes of file AUTORUN.INF to aaru_output/iso9660/DW6WIN_RUE/AUTORUN.INF Written 46136 bytes of file cright.bmp to aaru_output/iso9660/DW6WIN_RUE/cright.bmp Written 365568000 bytes of file Data1.cab to aaru_output/iso9660/DW6WIN_RUE/Data1.cab Reading file Data11.cab...: 42% [13:47:20 ERR] Error reading file: Source array was not long enough. Check the source index, length, and the array's lower bounds. (Parameter 'sourceArray') System.ArgumentException: Source array was not long enough. Check the source index, length, and the array's lower bounds. (Parameter 'sourceArray') at void System.Array.CopyImpl(Array sourceArray, int sourceIndex, Array destinationArray, int destinationIndex, int length, bool reliable) at ErrorNumber Aaru.Filesystems.ISO9660.ReadFile(IFileNode node, long length, byte[] buffer, out long read) at void Aaru.Commands.Filesystem.ExtractFilesCommand.<>c__DisplayClass3_6.<ExtractFilesInDir>b__2(ProgressContext ctx) at Task Spectre.Console.Progress.<>c__DisplayClass29_0.<Start>b__0(ProgressContext ctx) in /_/src/Spectre.Console/Live/Progress/Progress.cs:70 at void Spectre.Console.Progress.<>c__DisplayClass31_0.<<StartAsync>b__0>d.MoveNext() in /_/src/Spectre.Console/Live/Progress/Progress.cs:103 at void Spectre.Console.Progress.<>c__DisplayClass32_0`1.<<StartAsync>b__0>d.MoveNext() in /_/src/Spectre.Console/Live/Progress/Progress.cs:138 at async Task<T> Spectre.Console.Internal.DefaultExclusivityMode.RunAsync<T>(Func<Task<T>> func) in /_/src/Spectre.Console/Internal/DefaultExclusivityMode.cs:40 at async Task<T> Spectre.Console.Progress.StartAsync<T>(Func<ProgressContext, Task<T>> action) in /_/src/Spectre.Console/Live/Progress/Progress.cs:121 at async Task Spectre.Console.Progress.StartAsync(Func<ProgressContext, Task> action) in /_/src/Spectre.Console/Live/Progress/Progress.cs:101 at void Spectre.Console.Progress.Start(Action<ProgressContext> action) in /_/src/Spectre.Console/Live/Progress/Progress.cs:74 at void Aaru.Commands.Filesystem.ExtractFilesCommand.ExtractFilesInDir(string path, IReadOnlyFilesystem fs, string volumeName, string outputDir, bool doXattrs) at int Aaru.Commands.Filesystem.ExtractFilesCommand.Execute(CommandContext context, Settings settings) Error reading file: Source array was not long enough. Check the source index, length, and the array's lower bounds. (Parameter 'sourceArray') Uploading statistics ``` ### Affected image http://redump.org/disc/116473/ `Dynasty Warriors 6 (Russia).iso` Too large to upload; let me know if you have issues obtaining it.
claunia added the bugdump image formatneeds triage labels 2026-01-29 15:39:07 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: aaru-dps/Aaru-aaru-dps#1023