]> WPIA git - gigi.git/blobdiff - src/org/cacert/gigi/DevelLauncher.java
UPD: small coverity changes
[gigi.git] / src / org / cacert / gigi / DevelLauncher.java
index 5e0235939ea5b80fb1b0f392a3d8a65fd480f751..9f1bf066dd810165fbee617371d2e488860a3ca7 100644 (file)
@@ -14,7 +14,9 @@ import java.lang.reflect.Field;
 import java.net.URL;
 import java.nio.file.Files;
 import java.nio.file.Paths;
+import java.util.Collections;
 import java.util.HashMap;
+import java.util.Map;
 import java.util.Properties;
 
 import javax.servlet.http.HttpServletRequest;
@@ -54,7 +56,7 @@ public class DevelLauncher {
         byte[] cacerts = Files.readAllBytes(Paths.get("config/cacerts.jks"));
         byte[] keystore = Files.readAllBytes(Paths.get("config/keystore.pkcs12"));
 
-        DevelLauncher.writeGigiConfig(dos, "changeit".getBytes(), "changeit".getBytes(), mainProps, cacerts, keystore);
+        DevelLauncher.writeGigiConfig(dos, "changeit".getBytes("UTF-8"), "changeit".getBytes("UTF-8"), mainProps, cacerts, keystore);
         dos.flush();
         InputStream oldin = System.in;
         System.setIn(new ByteArrayInputStream(chunkConfig.toByteArray()));
@@ -75,7 +77,12 @@ public class DevelLauncher {
             instF.setAccessible(true);
             pageF.setAccessible(true);
             Object gigi = instF.get(null);
-            HashMap<String, Page> pages = (HashMap<String, Page>) pageF.get(gigi);
+
+            // Check if we got a proper map (as much as we can tell)
+            Object pagesObj = pageF.get(gigi);
+            @SuppressWarnings("unchecked")
+            HashMap<String, Page> pages = pagesObj instanceof Map ? new HashMap<>((Map<String, Page>) pagesObj) : null;
+
             pages.put("/manage", new Page("Page-manager") {
 
                 @Override
@@ -90,7 +97,9 @@ public class DevelLauncher {
                 public boolean needsLogin() {
                     return false;
                 }
+
             });
+
             pages.put("/kill", new Page("Kill") {
 
                 @Override
@@ -103,6 +112,8 @@ public class DevelLauncher {
                     return false;
                 }
             });
+
+            pageF.set(gigi, Collections.unmodifiableMap(pages));
         } catch (ReflectiveOperationException e) {
             e.printStackTrace();
         }