chiark / gitweb /
prefork-interp: C: new length approach
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 15 Aug 2022 20:21:44 +0000 (21:21 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 21 Aug 2022 20:21:10 +0000 (21:21 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
cprogs/prefork-interp.c

index c62f00ae2b69841ab7e4eb00abf9f150c60346d8..f499a882c3e9d8716613508c80e2d07be76a17b0 100644 (file)
@@ -254,14 +254,14 @@ static void send_request(void) {
   send_fd(1);
   send_fd(2);
 
-  size_t len = 4;
+  size_t len = 0;
   prepare_message(&len, 0);
-  char *m = malloc(len);
-  if (!m) diee("failed to allocate for message");
+
+  char *m = xmalloc(len + 4);
   char *p = m;
-  prepare_length(0, &p, len - 4);
+  prepare_length(0, &p, len);
   prepare_message(0, &p);
-  assert(p == m + len);
+  assert(p == m + len + 4);
 
   ssize_t sr = fwrite(p, len, 1, call_sock);
   if (sr != 1) diee("write request");