OSDN Git Service
(root)
/
lha
/
lha.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
2f6c23d
)
Fix another BUG about negative length.
author
Koji Arai
<jca02266@gmail.com>
Tue, 2 Feb 2016 17:46:10 +0000
(
02:46
+0900)
committer
Koji Arai
<jca02266@gmail.com>
Tue, 2 Feb 2016 17:46:10 +0000
(
02:46
+0900)
src/header.c
patch
|
blob
|
history
diff --git
a/src/header.c
b/src/header.c
index
70e7543
..
68783fb
100644
(file)
--- a/
src/header.c
+++ b/
src/header.c
@@
-229,6
+229,10
@@
get_bytes(buf, len, size)
#if DUMP_HEADER
if (verbose_listing && verbose > 1)
printf("%02d %2d: \"", get_ptr - start_ptr, len);
#if DUMP_HEADER
if (verbose_listing && verbose > 1)
printf("%02d %2d: \"", get_ptr - start_ptr, len);
+ if (len < 0) {
+ error("Invalid header: %d", len);
+ exit(1);
+ }
for (i = 0; i < len; i++) {
if (i < size) buf[i] = get_ptr[i];
for (i = 0; i < len; i++) {
if (i < size) buf[i] = get_ptr[i];
@@
-244,6
+248,10
@@
get_bytes(buf, len, size)
if (verbose_listing && verbose > 1)
printf("\"\n");
#else
if (verbose_listing && verbose > 1)
printf("\"\n");
#else
+ if (len < 0) {
+ error("Invalid header: %d", len);
+ exit(1);
+ }
for (i = 0; i < len && i < size; i++)
buf[i] = get_ptr[i];
#endif
for (i = 0; i < len && i < size; i++)
buf[i] = get_ptr[i];
#endif