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); Hi, Magnus
Maybe there is something wrong with snmptlstmtable since this table uses snmptargetparam as index. I will make a new patch for this soon. Best Regards! Zhu Yanjun > Now, assume that targaddrs->params contains embedded NUL characters. >>>> 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 > > ------------------------------------------------------------------------------ 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