Fix infinite loop. PR#3347
authorViktor Dukhovni <openssl-users@dukhovni.org>
Sun, 11 May 2014 19:28:56 +0000 (20:28 +0100)
committerMatt Caswell <matt@openssl.org>
Sun, 11 May 2014 20:15:57 +0000 (21:15 +0100)
apps/req.c

index 007baffa7fa7ae723b285a8c530848c4fd5e7cd9..be704baf9547f7af9bb8ee9194d7fe115f8a7e47 100644 (file)
@@ -1476,7 +1476,13 @@ start:
 #ifdef CHARSET_EBCDIC
        ebcdic2ascii(buf, buf, i);
 #endif
-       if(!req_check_len(i, n_min, n_max)) goto start;
+       if(!req_check_len(i, n_min, n_max))
+               {
+               if (batch || value)
+                       return 0;
+               goto start;
+               }
+
        if (!X509_NAME_add_entry_by_NID(n,nid, chtype,
                                (unsigned char *) buf, -1,-1,mval)) goto err;
        ret=1;
@@ -1535,7 +1541,12 @@ start:
 #ifdef CHARSET_EBCDIC
        ebcdic2ascii(buf, buf, i);
 #endif
-       if(!req_check_len(i, n_min, n_max)) goto start;
+       if(!req_check_len(i, n_min, n_max))
+               {
+               if (batch || value)
+                       return 0;
+               goto start;
+               }
 
        if(!X509_REQ_add1_attr_by_NID(req, nid, chtype,
                                        (unsigned char *)buf, -1)) {