Check for errors reading the assignment file in asn1Coding.
authorNikos Mavrogiannopoulos <nmav@gnutls.org>
Fri, 9 Nov 2012 23:18:37 +0000 (00:18 +0100)
committerNikos Mavrogiannopoulos <nmav@gnutls.org>
Fri, 9 Nov 2012 23:18:37 +0000 (00:18 +0100)
src/asn1Coding.c: Check the value returned by readAssignment ()
to be either ASSIGNMENT_SUCCESS or ASSIGNMENT_EOF.
Patch by Ivan Shmakov.

src/asn1Coding.c

index 0a6a996..700e958 100644 (file)
@@ -144,6 +144,7 @@ main (int argc, char *argv[])
   unsigned char *der = NULL;
   int der_len;
   int k;
+  int last_ra;
 
   set_program_name (argv[0]);
 
@@ -248,7 +249,8 @@ main (int argc, char *argv[])
 
   putc ('\n', stderr);
 
-  while (readAssignment (inputFile, varName, value) == ASSIGNMENT_SUCCESS)
+  while ((last_ra = readAssignment (inputFile, varName, value))
+          == ASSIGNMENT_SUCCESS)
     {
       fprintf (stderr, "var=%s, value=%s\n", varName, value);
       if (structure == NULL)
@@ -273,6 +275,11 @@ main (int argc, char *argv[])
          exit (1);
        }
     }
+  if (last_ra != ASSIGNMENT_EOF)
+    {
+      fprintf (stderr, "asn1Coding: error reading assignment file\n");
+      exit (1);
+    }
   fclose (inputFile);
 
   putc ('\n', stderr);