A full copy can keep both the key and the value instead of allocating twice the memory. Also this remove a warning produced by Coverity that is assuming that allocating strlen(string_variable) is wrong. Signed-off-by: Frediano Ziglio <fziglio@xxxxxxxxxx> --- common/ssl_verify.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/common/ssl_verify.c b/common/ssl_verify.c index 0ac00a6..74f95bb 100644 --- a/common/ssl_verify.c +++ b/common/ssl_verify.c @@ -282,7 +282,7 @@ static X509_NAME* subject_to_x509_name(const char *subject, int *nentries) { X509_NAME* in_subject; const char *p; - char *key, *val, *k, *v = NULL; + char *key, *val = NULL, *k, *v = NULL; enum { KEY, VALUE @@ -291,11 +291,10 @@ static X509_NAME* subject_to_x509_name(const char *subject, int *nentries) spice_return_val_if_fail(subject != NULL, NULL); spice_return_val_if_fail(nentries != NULL, NULL); - key = (char*)alloca(strlen(subject)); - val = (char*)alloca(strlen(subject)); + key = (char*)alloca(strlen(subject)+1); in_subject = X509_NAME_new(); - if (!in_subject || !key || !val) { + if (!in_subject || !key) { spice_debug("failed to allocate"); return NULL; } @@ -328,6 +327,7 @@ static X509_NAME* subject_to_x509_name(const char *subject, int *nentries) } else if (*p == '=' && !escape) { state = VALUE; *k = 0; + val = k + 1; v = val; } else *k++ = *p; -- 2.17.2 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel