Hi, Here is a patch to ensure that 'asn1_string_value_decode' will return a '\0' terminated string, as opposed to just a byte array of the requested length. This makes further processing, such as filtering, much simpler [no more realloc required...].
Please apply
Thanks.
-- Regards, ---------------------------------------------------------------- -o) Matthijs Melchior Maarssen /\\ [EMAIL PROTECTED] Netherlands _\_v ---------------------------------------------------------------- ----
--- asn1.c-ORG 2003-06-28 18:07:56.000000000 +0200
+++ asn1.c 2003-08-28 22:29:48.000000000 +0200
@@ -661,7 +661,8 @@
* Parameters:
* asn1: pointer to ASN1 socket.
* enc_len: length of encoding of value.
- * octets: pointer to variable we set to point to string.
+ * octets: pointer to variable we set to point to string,
+ * which is '\0' terminated for ease of use as C-string
* RETURNS: ASN1_ERR value (ASN1_ERR_NOERROR on success)
*/
int
@@ -681,7 +682,7 @@
*/
if (enc_len != 0) {
tvb_ensure_bytes_exist(asn1->tvb, asn1->offset, enc_len);
- *octets = g_malloc (enc_len);
+ *octets = g_malloc (enc_len+1);
} else {
/*
* If the length is 0, we allocate a 1-byte buffer, as
@@ -702,6 +703,7 @@
return ret;
}
}
+ (guchar *)ptr = '\0';
return ASN1_ERR_NOERROR;
}
