Hi, Magnus
In agent/mibgroup/target/snmpTargetAddrEntry.c:832
if (temp_struct->params == NULL)
...
*var_len = temp_struct->paramsLen;
Since params may have NUL, it is not appropriate to use params to get
the length of string.
Now I made a new patch in the attachment. Please check it.
Thanks a lot.
Zhu Yanjun
On 11/28/2013 04:11 PM, zhuyj wrote:
Hi, Magnus
In some log, I replace nameData with the hex string of nameData.
Maybe the log file can look better.
The patch is in the attachment. Please check it.
Best Regards!
Zhu Yanjun
On 11/28/2013 02:55 PM, zhuyj wrote:
On 11/26/2013 02:52 PM, Magnus Fromreide wrote:
On Mon, 2013-11-25 at 19:04 +0800, zhuyj wrote:
On 11/25/2013 02:34 AM, Magnus Fromreide wrote:
On Fri, 2013-11-22 at 14:27 +0800, zhuyj wrote:
4.patch -p1 < V5-7-patches-snmpTargetParam_support_zero_OID.patch
snmpTargetAddrEntry.c:
Chunk #2 is unnecessary - setting members to 0 before freeing the
object they are members of.
snmpTargetAddrEntry.h:
Putting the variable in the hole after nameLen will leave the size of
targetAddrTable_struct unchanged while the suggested location will
expand the size of it by 4 (or 8 on 64-bit) bytes.
snmpTargetParamsEntry.c:
Chunk #2 is unnecessary - setting a member to 0 before freeing the
object it is a member of.
Chunk #9? (get_paramEntry) - it would be more efficient and correct
to check that nameLen == ptr->paramNameLen before
memcmp'ing
name and paramName, in particular if nameLen <
paramNameLen.
target.c:
Certificate lookup under DTLS uses only the part of the name up to
the
first '\0'.
Hi, MF
I agree with other advices from you. But I do not understand this:
target.c:
Certificate lookup under DTLS uses only the part of the name up to the
first '\0'.
Would you like to explain this in details? Thanks a lot.
Sure.
target/target.c:205
cert = netsnmp_cert_find(NS_CERT_IDENTITY, NS_CERTKEY_TARGET_PARAM,
targaddrs->params);
Now, assume that targaddrs->params contains embedded NUL characters.
Hi, Magnus
I made 2 patches to support params and nameData in target/target.c:205
cert = netsnmp_cert_find(NS_CERT_IDENTITY, NS_CERTKEY_TARGET_PARAM,
targaddrs->params);
....
cert = netsnmp_cert_find(NS_CERT_REMOTE_PEER, NS_CERTKEY_TARGET_ADDR,
buf);
....
Please check it. Thanks a lot.
Zhu Yanjun
patch -p1 < V5-7-patches-fix-param-length.patch
patch -p1 < V5-7-patches-conf-support.patch
Why the memset's before read_config_save_octet_string?
An example is as below.
If variable tmp is used as the line1, there are 6 'x' in this variable
tmp.
we will copy 4 'y' to tmp, now the variable tmp is as below line2 if
we do not
memset tmp. It is not what we expect.
line1: tmp: xxxxxx
line2: using: yyyyxx
You can't use NUL as a end of string marker since NUL is a perfectly
valid character. When handing strings to printf you get around that
with
printf("%.*s", tmp, 4);
For other methods one usually have to add a method that takes a string
width.
/MF
>From eefe799d290b2bd10f44aa566cbb41d70e7f0e2d Mon Sep 17 00:00:00 2001
From: yzhu1 <yanjun....@windriver.com>
Date: Thu, 28 Nov 2013 17:02:19 +0800
Subject: [PATCH 7/7] Use paramsLen to replace params
Signed-off-by: yzhu1 <yanjun....@windriver.com>
---
agent/mibgroup/target/snmpTargetAddrEntry.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/agent/mibgroup/target/snmpTargetAddrEntry.c b/agent/mibgroup/target/snmpTargetAddrEntry.c
index 1f03614..021304a 100755
--- a/agent/mibgroup/target/snmpTargetAddrEntry.c
+++ b/agent/mibgroup/target/snmpTargetAddrEntry.c
@@ -832,10 +832,10 @@ var_snmpTargetAddrEntry(struct variable * vp,
}
case SNMPTARGETADDRPARAMS:
- if (temp_struct->params == NULL)
+ if (temp_struct->paramsLen == 0)
return NULL;
strlcpy(string, temp_struct->params, sizeof(string));
- *var_len = strlen(string);
+ *var_len = temp_struct->paramsLen;
return (unsigned char *) string;
case SNMPTARGETADDRSTORAGETYPE:
--
1.7.9.5
------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT
organizations don't have a clear picture of how application performance
affects their revenue. With AppDynamics, you get 100% visibility into your
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349351&iu=/4140/ostg.clktrk
_______________________________________________
Net-snmp-coders mailing list
Net-snmp-coders@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/net-snmp-coders