[Spice-commits] common/ssl_verify.c
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Wed Dec 19 13:32:33 UTC 2018
common/ssl_verify.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
New commits:
commit 2d32025f77d73778419c2b462906b9a315df0894
Author: Frediano Ziglio <fziglio at redhat.com>
Date: Wed Dec 12 10:03:38 2018 +0000
Use a single copy of subject string
A full copy can keep both the key and the value instead of allocating
twice the memory.
We are parsing key1=val1,key2=val2,... and in doing that, we currently
store 'key1' in key, and 'val1' in val, and then 'key2', 'val2', and so
on.
After this patch, we store 'key1\0val1\0' in key, which fits and saves
some memory.
Also this removes a warning produced by Coverity that is assuming that
allocating strlen(string_variable) is wrong.
Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
Acked-by: Christophe Fergeau <cfergeau at redhat.com>
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;
More information about the Spice-commits
mailing list