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

Reply via email to