OSDN Git Service

Fix another BUG about negative length.
authorKoji Arai <jca02266@gmail.com>
Tue, 2 Feb 2016 17:46:10 +0000 (02:46 +0900)
committerKoji Arai <jca02266@gmail.com>
Tue, 2 Feb 2016 17:46:10 +0000 (02:46 +0900)
src/header.c

index 70e7543..68783fb 100644 (file)
@@ -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