need to allocate, not call ourselves.
authorJohn Kohl <jtkohl@mit.edu>
Thu, 11 Oct 1990 00:58:42 +0000 (00:58 +0000)
committerJohn Kohl <jtkohl@mit.edu>
Thu, 11 Oct 1990 00:58:42 +0000 (00:58 +0000)
need to put something in the structure, even if it's nothing.

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

src/lib/krb5/asn.1/ktgrq2tgrq.c

index 0fad014ff4bd9d4c9070457e18333a6d7a954d8a..c14be7acf387fc1bb95ee573882f5fc73bf6ea34 100644 (file)
@@ -35,12 +35,14 @@ register int *error;
 {
     register struct type_KRB5_KDC__REQ__BODY *retval;
     
-    retval = krb5_kdc_req2KRB5_KDC__REQ__BODY(val, error);
+    retval = (struct type_KRB5_KDC__REQ__BODY *)xmalloc(sizeof(*retval));
     if (!retval) {
        *error = ENOMEM;
        return(0);
     }
 
+    xbzero(retval, sizeof(*retval));
+
     retval->kdc__options =
        krb5_kdcoptions2KRB5_KDCOptions(val->kdc_options,
                                        error);
@@ -108,13 +110,13 @@ register int *error;
        /* count elements */
        for (i = 0, temp = val->second_ticket; *temp; temp++,i++);
 
-       adtk = (struct element_KRB5_6 *)xmalloc(sizeof(*retval) +
+       adtk = (struct element_KRB5_6 *)xmalloc(sizeof(*adtk) +
                                                max(0,i-1)*sizeof(adtk->Ticket));
        if (!adtk) {
            *error = ENOMEM;
            goto errout;
        }
-       xbzero(adtk, sizeof(adtk));
+       xbzero(adtk, sizeof(*adtk));
        adtk->nelem = i;
        for (i = 0; i < adtk->nelem; i++) {
            adtk->Ticket[i] = krb5_ticket2KRB5_Ticket(val->second_ticket[i],
@@ -129,7 +131,18 @@ register int *error;
            }
        }
        retval->additional__tickets = adtk;
+    } else {
+       struct element_KRB5_6 *adtk;
+       adtk = (struct element_KRB5_6 *)xmalloc(sizeof(*adtk));
+       if (!adtk) {
+           *error = ENOMEM;
+           goto errout;
+       }
+       xbzero(adtk, sizeof(*adtk));
+       adtk->nelem = 0;
+       retval->additional__tickets = adtk;
     }
+       
     return retval;
 }