common: Check read errors in name-value.c
authorWerner Koch <wk@gnupg.org>
Fri, 2 Sep 2016 13:33:34 +0000 (15:33 +0200)
committerWerner Koch <wk@gnupg.org>
Fri, 2 Sep 2016 14:56:04 +0000 (16:56 +0200)
* common/name-value.c: Check for read errors.

Signed-off-by: Werner Koch <wk@gnupg.org>
common/name-value.c

index 0b32a44..ebc48e5 100644 (file)
@@ -665,7 +665,7 @@ do_nvc_parse (nvc_t *result, int *errlinep, estream_t stream,
 
   if (errlinep)
     *errlinep = 0;
-  while ((len = es_read_line (stream, &buf, &buf_len, NULL)))
+  while ((len = es_read_line (stream, &buf, &buf_len, NULL)) > 0)
     {
       char *p;
       if (errlinep)
@@ -735,6 +735,11 @@ do_nvc_parse (nvc_t *result, int *errlinep, estream_t stream,
          goto leave;
        }
     }
+  if (len < 0)
+    {
+      err = gpg_error_from_syserror ();
+      goto leave;
+    }
 
   /* Add the final entry.  */
   if (raw_value)