1
0
mirror of git://git.gnupg.org/gnupg.git synced 2024-06-01 22:28:02 +02:00

dirmngr: Replace stpcpy chains by strconcat.

* dirmngr/certcache.c (find_cert_bysn): Use strconcat.
(find_cert_bysubject): Ditto.
* dirmngr/http.c (store_header): Ditto.
* dirmngr/ldap.c (make_url): Ditto.
* dirmngr/server.c (get_cert_local_ski): Ditto.
(do_get_cert_local): Use xstrconcat.
--

Signed-off-by: Werner Koch <wk@gnupg.org>
This commit is contained in:
Werner Koch 2017-02-16 10:19:59 +01:00
parent 7a666ccb44
commit aef60abe6a
No known key found for this signature in database
GPG Key ID: E3FDFF218E45B72B
4 changed files with 14 additions and 31 deletions

View File

@ -1004,15 +1004,15 @@ find_cert_bysn (ctrl_t ctrl, const char *issuer_dn, ksba_sexp_t serialno)
log_error ("serial_hex() failed\n"); log_error ("serial_hex() failed\n");
return NULL; return NULL;
} }
buf = xtrymalloc (1 + strlen (hexsn) + 1 + strlen (issuer_dn) + 1); buf = strconcat ("#", hexsn, "/", issuer_dn, NULL);
if (!buf) if (!buf)
{ {
log_error ("can't allocate enough memory: %s\n", strerror (errno)); log_error ("can't allocate enough memory: %s\n", strerror (errno));
xfree (hexsn); xfree (hexsn);
return NULL; return NULL;
} }
strcpy (stpcpy (stpcpy (stpcpy (buf, "#"), hexsn),"/"), issuer_dn);
xfree (hexsn); xfree (hexsn);
cert = get_cert_local (ctrl, buf); cert = get_cert_local (ctrl, buf);
xfree (buf); xfree (buf);
if (cert) if (cert)
@ -1169,13 +1169,12 @@ find_cert_bysubject (ctrl_t ctrl, const char *subject_dn, ksba_sexp_t keyid)
search is done. */ search is done. */
char *buf; char *buf;
buf = xtrymalloc (1 + strlen (subject_dn) + 1); buf = strconcat ("/", subject_dn, NULL);
if (!buf) if (!buf)
{ {
log_error ("can't allocate enough memory: %s\n", strerror (errno)); log_error ("can't allocate enough memory: %s\n", strerror (errno));
return NULL; return NULL;
} }
strcpy (stpcpy (buf, "/"), subject_dn);
cert = get_cert_local (ctrl, buf); cert = get_cert_local (ctrl, buf);
xfree (buf); xfree (buf);
} }

View File

@ -2150,11 +2150,10 @@ store_header (http_t hd, char *line)
if (h) if (h)
{ {
/* We have already seen a line with that name. Thus we assume /* We have already seen a line with that name. Thus we assume
it is a comma separated list and merge them. */ * it is a comma separated list and merge them. */
p = xtrymalloc (strlen (h->value) + 1 + strlen (value)+ 1); p = strconcat (h->value, ",", value, NULL);
if (!p) if (!p)
return gpg_err_code_from_syserror (); return gpg_err_code_from_syserror ();
strcpy (stpcpy (stpcpy (p, h->value), ","), value);
xfree (h->value); xfree (h->value);
h->value = p; h->value = p;
return 0; return 0;

View File

@ -445,28 +445,18 @@ make_url (char **url, const char *dn, const char *filter)
xfree (u_dn); xfree (u_dn);
return err; return err;
} }
*url = malloc ( 8 + strlen (u_dn)
+ 1 + strlen (attrs) *url = strconcat ("ldap:///", u_dn, "?", attrs, "?sub?", u_filter, NULL);
+ 5 + strlen (u_filter) + 1 );
if (!*url) if (!*url)
{ err = gpg_error_from_syserror ();
err = gpg_error_from_errno (errno); else
err = 0;
xfree (u_dn); xfree (u_dn);
xfree (u_filter); xfree (u_filter);
return err; return err;
} }
stpcpy (stpcpy (stpcpy (stpcpy (stpcpy (stpcpy (*url, "ldap:///"),
u_dn),
"?"),
attrs),
"?sub?"),
u_filter);
xfree (u_dn);
xfree (u_filter);
return 0;
}
/* Prepare an LDAP query to return the attribute ATTR for the DN. All /* Prepare an LDAP query to return the attribute ATTR for the DN. All
configured default servers are queried until one responds. This configured default servers are queried until one responds. This

View File

@ -367,10 +367,7 @@ do_get_cert_local (ctrl_t ctrl, const char *name, const char *command)
ksba_cert_t cert; ksba_cert_t cert;
if (name) if (name)
{ buf = xstrconcat (command, " ", name, NULL);
buf = xmalloc ( strlen (command) + 1 + strlen(name) + 1);
strcpy (stpcpy (stpcpy (buf, command), " "), name);
}
else else
buf = xstrdup (command); buf = xstrdup (command);
@ -475,15 +472,13 @@ get_cert_local_ski (ctrl_t ctrl, const char *name, ksba_sexp_t keyid)
return NULL; return NULL;
} }
buf = xtrymalloc (15 + strlen (hexkeyid) + 2 + strlen(name) + 1); buf = strconcat ("SENDCERT_SKI ", hexkeyid, " /", name, NULL);
if (!buf) if (!buf)
{ {
log_error ("can't allocate enough memory: %s\n", strerror (errno)); log_error ("can't allocate enough memory: %s\n", strerror (errno));
xfree (hexkeyid); xfree (hexkeyid);
return NULL; return NULL;
} }
strcpy (stpcpy (stpcpy (stpcpy (buf, "SENDCERT_SKI "), hexkeyid)," /"),name);
xfree (hexkeyid); xfree (hexkeyid);
rc = assuan_inquire (ctrl->server_local->assuan_ctx, buf, rc = assuan_inquire (ctrl->server_local->assuan_ctx, buf,