* an1buf.c: Harry saves vs. Unix again. Making sure that anything
authorTom Yu <tlyu@mit.edu>
Thu, 7 Jul 1994 00:36:33 +0000 (00:36 +0000)
committerTom Yu <tlyu@mit.edu>
Thu, 7 Jul 1994 00:36:33 +0000 (00:36 +0000)
that can call calloc with a zero argument won't return ENOMEM if
calloc retuns NULL in this case.  This was prompted by breakage
under linux.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@3956 dc483132-0cff-0310-8789-dd5450dbe970

src/lib/krb5/asn.1/ChangeLog
src/lib/krb5/asn.1/asn1buf.c

index 1f956d2148f89069e03baaacff49f790254c39cc..a8d2e3cac07b98c00f4e281d170bd4aae23c1a41 100644 (file)
@@ -1,5 +1,10 @@
 Wed Jul  6 13:21:35 1994  Mark Eichin  (eichin@cygnus.com)
 
+       * an1buf.c: Harry saves vs. Unix again.  Making sure that anything
+       that can call calloc with a zero argument won't return ENOMEM if
+       calloc retuns NULL in this case.  This was prompted by breakage
+       under linux.
+
        * asn1_encode.c (asn1_encode_generaltime): don't use strftime on
        the output of gmtime -- under Solaris, it mutates it! (seems to be
        doing a timezone offset.) Besides, sprintf is quite sufficient.
index 0503373c24933ac3e3630606ab321a777c43cfb5..cc8cf71156bf2cdd82e1237d21d176fe50d564f9 100644 (file)
@@ -174,7 +174,7 @@ asn1_error_code asn1buf_remove_octetstring(DECLARG(asn1buf *, buf),
 
   if(buf->next + len - 1 > buf->bound) return ASN1_OVERRUN;
   *s = (asn1_octet*)calloc(len,sizeof(asn1_octet));
-  if(*s == NULL) return ENOMEM;
+  if((*s == NULL) && len) return ENOMEM;
   for(i=0; i<len; i++)
     (*s)[i] = (asn1_octet)(buf->next)[i];
   buf->next += len;
@@ -192,7 +192,7 @@ asn1_error_code asn1buf_remove_charstring(DECLARG(asn1buf *, buf),
 
   if(buf->next + len - 1 > buf->bound) return ASN1_OVERRUN;
   *s = (char*)calloc(len,sizeof(char));
-  if(*s == NULL) return ENOMEM;
+  if((*s == NULL) && len) return ENOMEM;
   for(i=0; i<len; i++)
     (*s)[i] = (char)(buf->next)[i];
   buf->next += len;