< prev index next >

src/jdk.pack200/share/native/common-unpack/unpack.cpp

Print this page
rev 16271 : 8170663: Fix minor issues in corelib and servicabilty coding.
Reviewed-by: dsamersoff, dholmes
Contributed-by: David CARLIER <devnexen@gmail.com>, goetz.lindenmaier@sap.com

@@ -2291,14 +2291,19 @@
         // n = (<pkg>/)*<outer>$<name>
         dollar1 = dollar2;
         number.set(null,0);
         name = n.slice(dollar2+1, nlen);
       }
-      if (number.ptr == null)
+      if (number.ptr == null) {
+        if (dollar1 < 0) {
+          abort();
+          return;
+        }
         pkgOuter = n.slice(0, dollar1);
-      else
+      } else {
         pkgOuter.set(null,0);
+      }
       PRINTCR((5,"=> %s$ 0%s $%s",
               pkgOuter.string(), number.string(), name.string()));
 
       if (pkgOuter.ptr != null)
         ics[i].outer = cp.ensureClass(pkgOuter);

@@ -4195,10 +4200,11 @@
     case bc_byte_escape:
       {
         // Note that insnMap has one entry for all these bytes.
         --wp;  // not really part of the code
         int size = bc_escsize.getInt();
+        if (size < 0) { assert(false); continue; }
         ensure_put_space(size);
         for (int j = 0; j < size; j++)
           putu1_fast(bc_escbyte.getByte());
         continue;
       }
< prev index next >