[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[SCM] GNU libtasn1 branch, master, updated. libtasn1_4.7-16-g9bed7ad
From: |
Nikos Mavrogiannopoulos |
Subject: |
[SCM] GNU libtasn1 branch, master, updated. libtasn1_4.7-16-g9bed7ad |
Date: |
Mon, 04 Apr 2016 12:48:47 +0000 |
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU libtasn1".
http://git.savannah.gnu.org/cgit/libtasn1.git/commit/?id=9bed7ad7a65e7a6b1d879ef8f2b5bd8ef244a04d
The branch, master has been updated
via 9bed7ad7a65e7a6b1d879ef8f2b5bd8ef244a04d (commit)
from 0301945a0f1e33ff9e02175c7848fc7c0a91b6db (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 9bed7ad7a65e7a6b1d879ef8f2b5bd8ef244a04d
Author: Nikos Mavrogiannopoulos <address@hidden>
Date: Mon Apr 4 14:46:58 2016 +0200
Simplify _asn1_append_value() and avoid memcpy's with zero length
Based on patch of Pascal Cuoq <address@hidden>
-----------------------------------------------------------------------
Summary of changes:
lib/parser_aux.c | 28 +++++++++++++++++++---------
1 files changed, 19 insertions(+), 9 deletions(-)
diff --git a/lib/parser_aux.c b/lib/parser_aux.c
index 0a1f645..a42cdd2 100644
--- a/lib/parser_aux.c
+++ b/lib/parser_aux.c
@@ -316,39 +316,49 @@ _asn1_append_value (asn1_node node, const void *value,
unsigned int len)
{
if (node == NULL)
return node;
- if (node->value != NULL && node->value != node->small_value)
+
+ if (node->value == NULL)
+ return _asn1_set_value (node, value, len);
+
+ if (len == 0)
+ return node;
+
+ if (node->value == node->small_value)
{
- /* value is allocated */
+ /* value is in node */
int prev_len = node->value_len;
node->value_len += len;
- node->value = _asn1_realloc (node->value, node->value_len);
+ node->value = malloc (node->value_len);
if (node->value == NULL)
{
node->value_len = 0;
return NULL;
}
+
+ if (prev_len > 0)
+ memcpy (node->value, node->small_value, prev_len);
+
memcpy (&node->value[prev_len], value, len);
return node;
}
- else if (node->value == node->small_value)
+ else /* if (node->value != NULL && node->value != node->small_value) */
{
- /* value is in node */
+ /* value is allocated */
int prev_len = node->value_len;
node->value_len += len;
- node->value = malloc (node->value_len);
+
+ node->value = _asn1_realloc (node->value, node->value_len);
if (node->value == NULL)
{
node->value_len = 0;
return NULL;
}
- memcpy (node->value, node->small_value, prev_len);
+
memcpy (&node->value[prev_len], value, len);
return node;
}
- else /* node->value == NULL */
- return _asn1_set_value (node, value, len);
}
/******************************************************************/
hooks/post-receive
--
GNU libtasn1
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [SCM] GNU libtasn1 branch, master, updated. libtasn1_4.7-16-g9bed7ad,
Nikos Mavrogiannopoulos <=