libarchive/test/test_read_format_rar5_stored_manyfiles.rar.uu \
libarchive/test/test_read_format_rar5_symlink.rar.uu \
libarchive/test/test_read_format_rar5_truncated_huff.rar.uu \
+ libarchive/test/test_read_format_rar5_unpacked_size_exceeds_declared.rar.uu \
libarchive/test/test_read_format_rar5_unicode.rar.uu \
libarchive/test/test_read_format_rar5_win32.rar.uu \
libarchive/test/test_read_format_rar5_arm_filter_on_window_boundary.rar.uu \
EPILOGUE();
}
+
+DEFINE_TEST(test_read_format_rar5_unpacked_size_exceeds_declared)
+{
+ PROLOGUE("test_read_format_rar5_unpacked_size_exceeds_declared.rar");
+
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+ assertEqualString("seed", archive_entry_pathname(ae));
+ assertEqualInt(109, archive_entry_size(ae));
+
+ assertEqualIntA(a, ARCHIVE_FATAL, archive_read_next_header(a, &ae));
+ assertA(archive_error_string(a) != NULL);
+
+ assertEqualInt(ARCHIVE_OK, archive_read_free(a));
+}
--- /dev/null
+begin 644 test_read_format_rar5_unpacked_size_exceeds_declared.rar
+M4F%R(1H'`0!S'-%&"@$%+`8`!0$!@(``PJ.']B("`POG``3M`*2#`E0DF'B`
+M`P$$<V5E9`H#$V0JGU[VYTHYP?]D-50S+Y,[YA3P`1@)46%!68"P&$$H2)$8
+M,V_"7`<'!P<'!P<'!P<'!P<'!P<'!P<'!P<'!P<'!P<'!P<'!P<'!P<'!P<'
+M!P<0R!KGS?_Y1ZGJ/]5[V/WGQV3QS(RALJQ[H%.N$.-9EH-4R%#&),\=!'V$
+MXR:QWL0$Z0'%XQY*.<$4(I44Z>GIZ>GIZ>GIZ>GIZ>GIZ>GIZ>GIZ>GIZ>GI
+MZ>GIZ>GIZ>GIZ>GIZ>GIZ>GIZ>GIZ>GIZ>GIZ>GIZ>GIZ>GIZ>GIZ>GIZ>GI
+;Z>GIZ>G)%78/_6H4^?O2+65;@!UW5E$#!00`
+`
+end