Browse Source

Don't assert in get_string_from_pipe() on len==0

We can treat this case as an EAGAIN (probably because of an
unexpected internal NUL) rather than a crash-worthy problem.

Fixes bug 6225, again.  Bug not in any released version of Tor.
Nick Mathewson 13 years ago
parent
commit
ffd7189b3f
1 changed files with 4 additions and 1 deletions
  1. 4 1
      src/common/util.c

+ 4 - 1
src/common/util.c

@@ -4386,7 +4386,10 @@ get_string_from_pipe(FILE *stream, char *buf_out, size_t count)
     }
   } else {
     len = strlen(buf_out);
-    tor_assert(len>0);
+    if (len == 0) {
+      /* this probably means we got a NUL at the start of the string. */
+      return IO_STREAM_EAGAIN;
+    }
 
     if (buf_out[len - 1] == '\n') {
       /* Remove the trailing newline */