if (auth == NULL || ad == NULL || ad->ad_fullname == NULL || ad->ad_servername == NULL)
if (ad->ad_fullname == NULL || ad->ad_servername == NULL)
authdes_pk_create (const char *servername, netobj *pkey, u_int window,		   struct sockaddr *syncaddr, des_block *ckey){  AUTH *auth;  struct ad_private *ad;  char namebuf[MAXNETNAMELEN + 1];  /*   * Allocate everything now   */  auth = ALLOC (AUTH);  ad = ALLOC (struct ad_private);  memset (ad, 0, sizeof (struct ad_private));  memcpy (ad->ad_pkey, pkey->n_bytes, pkey->n_len);  if (!getnetname (namebuf))    goto failed;  ad->ad_fullnamelen = RNDUP (strlen (namebuf));  ad->ad_fullname = mem_alloc (ad->ad_fullnamelen + 1);  ad->ad_servernamelen = strlen (servername);  ad->ad_servername = mem_alloc (ad->ad_servernamelen + 1);  if (auth == NULL || ad == NULL || ad->ad_fullname == NULL ||      ad->ad_servername == NULL)    {      debug ("authdes_create: out of memory");      goto failed;    }  /*   * Set up private data   */  bcopy (namebuf, ad->ad_fullname, ad->ad_fullnamelen + 1);  bcopy (servername, ad->ad_servername, ad->ad_servernamelen + 1);  ad->ad_timediff.tv_sec = ad->ad_timediff.tv_usec = 0;  if (syncaddr != NULL)    {      ad->ad_syncaddr = *syncaddr;      ad->ad_dosync = TRUE;    }  else    ad->ad_dosync = FALSE;  ad->ad_window = window;  if (ckey == NULL)    {      if (key_gendes (&auth->ah_key) < 0)	{	  debug ("authdes_create: unable to gen conversation key");	  return (NULL);	}    }  else    auth->ah_key = *ckey;  /*   * Set up auth handle   */  auth->ah_cred.oa_flavor = AUTH_DES;  auth->ah_verf.oa_flavor = AUTH_DES;  auth->ah_ops = &authdes_ops;  auth->ah_private = (caddr_t) ad;  if (!authdes_refresh (auth))    goto failed;  return (auth);failed:  if (auth != NULL)    FREE (auth, sizeof (AUTH));  if (ad != NULL)    {      if (ad->ad_fullname != NULL)	FREE (ad->ad_fullname, ad->ad_fullnamelen + 1);      if (ad->ad_servername != NULL)	FREE (ad->ad_servername, ad->ad_servernamelen + 1);      FREE (ad, sizeof (struct ad_private));    }  return (NULL);}