Date: Tue, 24 May 2016 05:11:55 +0000 (UTC) From: Garrett Cooper <ngie@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r300566 - in stable/9: contrib/bsnmp/snmp_usm contrib/bsnmp/snmpd usr.sbin/bsnmpd/bsnmpd Message-ID: <201605240511.u4O5Btdu038105@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: ngie Date: Tue May 24 05:11:55 2016 New Revision: 300566 URL: https://svnweb.freebsd.org/changeset/base/300566 Log: MFstable/10 r233128,r300561: r233128 (by harti): memset() wants the size of the structure to clear, not the size of the pointer to it. r300561: MFC r299465,r299807,r299808,r299817,r299831,r299832,r300167: r299465 (by cem): bsnmp: Don't overrun privkey buffer by copying wrong size The 'priv_key' array is SNMP_PRIV_KEY_SIZ bytes, not SNMP_AUTH_KEY_SIZ. CIDs: 1008326, 1009675 r299807: Replace QUADFMT with %ju and QUADXFMT with %jx and cast values with uintmax_t This will cure some -Wformat warnings r299808: Use sizeof(..)s for the destination buffers instead of hardcoded values corresponding to the destination buffer sizes r299817: Use SNMPD_INPUT_FAILED instead of SNMP_CODE_FAILED SNMPD_INPUT_FAILED is `enum snmpd_input_err` type (which matches the return code from the function). SNMP_CODE_FAILED is `enum snmp_code` type. r299831: Remove NO_WERROR and add WARNS?= 6 This now compiles cleanly on all architectures Tested with: clang 3.8, gcc 4.2.1, gcc 4.5, make tinderbox r299832: Remove trailing whitespace in license tort r300167 (by glebius): Revert r299830, it has couple of fatal errors. The CMSG_ family of macros take care of alignment, so we don't need r299830 at all, even if it was correct. Put NO_WCAST_ALIGN into Makefile. Together with: peter Modified: stable/9/contrib/bsnmp/snmp_usm/usm_snmp.c stable/9/contrib/bsnmp/snmpd/bsnmpd.1 stable/9/contrib/bsnmp/snmpd/config.c stable/9/contrib/bsnmp/snmpd/main.c stable/9/usr.sbin/bsnmpd/bsnmpd/Makefile Directory Properties: stable/9/ (props changed) stable/9/contrib/ (props changed) stable/9/contrib/bsnmp/ (props changed) stable/9/usr.sbin/ (props changed) stable/9/usr.sbin/bsnmpd/ (props changed) Modified: stable/9/contrib/bsnmp/snmp_usm/usm_snmp.c ============================================================================== --- stable/9/contrib/bsnmp/snmp_usm/usm_snmp.c Tue May 24 05:06:01 2016 (r300565) +++ stable/9/contrib/bsnmp/snmp_usm/usm_snmp.c Tue May 24 05:11:55 2016 (r300566) @@ -262,7 +262,7 @@ op_usm_users(struct snmp_context *ctx, s if (ctx->scratch->ptr1 == NULL) return (SNMP_ERR_GENERR); memcpy(ctx->scratch->ptr1, uuser->suser.priv_key, - SNMP_PRIV_KEY_SIZ); + sizeof(uuser->suser.priv_key)); memcpy(uuser->suser.priv_key, val->v.octetstring.octets, val->v.octetstring.len); break; @@ -286,7 +286,7 @@ op_usm_users(struct snmp_context *ctx, s uuser->user_public_len = val->v.octetstring.len; } else { memset(uuser->user_public, 0, - SNMP_ADM_STR32_SIZ); + sizeof(uuser->user_public)); uuser->user_public_len = 0; } break; @@ -351,7 +351,7 @@ op_usm_users(struct snmp_context *ctx, s case LEAF_usmUserAuthKeyChange: case LEAF_usmUserOwnAuthKeyChange: memcpy(uuser->suser.auth_key, ctx->scratch->ptr1, - SNMP_AUTH_KEY_SIZ); + sizeof(uuser->suser.auth_key)); free(ctx->scratch->ptr1); break; case LEAF_usmUserPrivProtocol: @@ -360,7 +360,7 @@ op_usm_users(struct snmp_context *ctx, s case LEAF_usmUserPrivKeyChange: case LEAF_usmUserOwnPrivKeyChange: memcpy(uuser->suser.priv_key, ctx->scratch->ptr1, - SNMP_AUTH_KEY_SIZ); + sizeof(uuser->suser.priv_key)); free(ctx->scratch->ptr1); break; case LEAF_usmUserPublic: @@ -371,7 +371,7 @@ op_usm_users(struct snmp_context *ctx, s free(ctx->scratch->ptr2); } else { memset(uuser->user_public, 0, - SNMP_ADM_STR32_SIZ); + sizeof(uuser->user_public)); uuser->user_public_len = 0; } break; Modified: stable/9/contrib/bsnmp/snmpd/bsnmpd.1 ============================================================================== --- stable/9/contrib/bsnmp/snmpd/bsnmpd.1 Tue May 24 05:06:01 2016 (r300565) +++ stable/9/contrib/bsnmp/snmpd/bsnmpd.1 Tue May 24 05:11:55 2016 (r300566) @@ -7,7 +7,7 @@ .\" All rights reserved. .\" .\" Author: Harti Brandt <harti@FreeBSD.org> -.\" +.\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: @@ -16,7 +16,7 @@ .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. -.\" +.\" .\" THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE Modified: stable/9/contrib/bsnmp/snmpd/config.c ============================================================================== --- stable/9/contrib/bsnmp/snmpd/config.c Tue May 24 05:06:01 2016 (r300565) +++ stable/9/contrib/bsnmp/snmpd/config.c Tue May 24 05:11:55 2016 (r300566) @@ -823,7 +823,8 @@ parse_oid(const char *varname, struct as while (token == '.') { if (gettoken() == TOK_NUM) { if (numval > ASN_MAXID) - report("subid too large %#"QUADXFMT, numval); + report("subid too large %#jx", + (uintmax_t)numval); if (oid->len == ASN_MAXOIDLEN) report("index too long"); if (gettoken() != ':') @@ -878,7 +879,7 @@ parse_syntax_integer(struct snmp_value * if (token != TOK_NUM) report("bad INTEGER syntax"); if (numval > 0x7fffffff) - report("INTEGER too large %"QUADFMT, numval); + report("INTEGER too large %ju", (uintmax_t)numval); value->v.integer = numval; gettoken(); Modified: stable/9/contrib/bsnmp/snmpd/main.c ============================================================================== --- stable/9/contrib/bsnmp/snmpd/main.c Tue May 24 05:06:01 2016 (r300565) +++ stable/9/contrib/bsnmp/snmpd/main.c Tue May 24 05:11:55 2016 (r300566) @@ -648,11 +648,11 @@ decoded: } else if (usm_user->suser.auth_proto != SNMP_AUTH_NOAUTH && (pdu->engine.engine_boots == 0 || pdu->engine.engine_time == 0)) { snmpd_usmstats.not_in_time_windows++; - ret = SNMP_CODE_FAILED; + ret = SNMPD_INPUT_FAILED; } if ((code = snmp_pdu_auth_access(pdu, ip)) != SNMP_CODE_OK) - ret = SNMP_CODE_FAILED; + ret = SNMPD_INPUT_FAILED; return (ret); } @@ -2730,7 +2730,7 @@ bsnmpd_get_usm_stats(void) void bsnmpd_reset_usm_stats(void) { - memset(&snmpd_usmstats, 0, sizeof(&snmpd_usmstats)); + memset(&snmpd_usmstats, 0, sizeof(snmpd_usmstats)); } struct usm_user * Modified: stable/9/usr.sbin/bsnmpd/bsnmpd/Makefile ============================================================================== --- stable/9/usr.sbin/bsnmpd/bsnmpd/Makefile Tue May 24 05:06:01 2016 (r300565) +++ stable/9/usr.sbin/bsnmpd/bsnmpd/Makefile Tue May 24 05:11:55 2016 (r300566) @@ -16,7 +16,6 @@ XSYM= snmpMIB begemotSnmpdModuleTable be freeBSD freeBSDVersion CLEANFILES= oid.h tree.c tree.h MAN= bsnmpd.1 snmpmod.3 -NO_WERROR= FILESGROUPS= BMIBS DEFS @@ -27,7 +26,7 @@ DEFSDIR= ${SHAREDIR}/snmp/defs CFLAGS+= -DSNMPTREE_TYPES CFLAGS+= -I${CONTRIB}/lib -I${CONTRIB}/snmpd -I. -DUSE_LIBBEGEMOT -CFLAGS+= -DUSE_TCPWRAPPERS -DQUADFMT='"llu"' -DQUADXFMT='"llx"' +CFLAGS+= -DUSE_TCPWRAPPERS CFLAGS+= -DHAVE_STDINT_H -DHAVE_INTTYPES_H -DHAVE_ERR_H -DHAVE_STRLCPY DPADD= ${LIBBEGEMOT} ${LIBBSNMP} ${LIBWRAP} LDADD= -lbegemot -lbsnmp -lwrap @@ -49,4 +48,7 @@ MANFILTER= sed -e 's%@MODPATH@%${LIBDIR} -e 's%@DEFPATH@%${DEFSDIR}/%g' \ -e 's%@MIBSPATH@%${BMIBSDIR}/%g' +NO_WCAST_ALIGN= yes +WARNS?= 6 + .include <bsd.prog.mk>
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201605240511.u4O5Btdu038105>