json: Ensure that native msging request is string
authorAndre Heinecke <aheinecke@intevation.de>
Wed, 18 Jul 2018 11:06:08 +0000 (13:06 +0200)
committerAndre Heinecke <aheinecke@intevation.de>
Wed, 18 Jul 2018 11:06:08 +0000 (13:06 +0200)
* src/gpgme-json.c (native_messaging_repl): Ensure that the
request is NULL terminated.

--
This avoids potential memory leaks and access to unmapped memory
in case the request was not terminated.
Other request functions use es_read_line which gurantees NULL
termination.

src/gpgme-json.c

index edd3d32..74ca2b6 100644 (file)
@@ -3601,7 +3601,7 @@ native_messaging_repl (void)
         }
 
       /* Read request.  */
-      request = xtrymalloc (nrequest);
+      request = xtrymalloc (nrequest + 1);
       if (!request)
         {
           err = gpg_error_from_syserror ();
@@ -3626,6 +3626,7 @@ native_messaging_repl (void)
         }
       else /* Process request  */
         {
+          request[n] = '\0'; /* Esnure that request has an end */
           if (opt_debug)
             log_debug ("request='%s'\n", request);
           xfree (response);