From nobody@FreeBSD.org  Wed Apr 10 18:33:20 2013
Return-Path: <nobody@FreeBSD.org>
Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115])
	by hub.freebsd.org (Postfix) with ESMTP id 8100B146
	for <freebsd-gnats-submit@FreeBSD.org>; Wed, 10 Apr 2013 18:33:20 +0000 (UTC)
	(envelope-from nobody@FreeBSD.org)
Received: from red.freebsd.org (red.freebsd.org [IPv6:2001:4f8:fff6::22])
	by mx1.freebsd.org (Postfix) with ESMTP id 726DA101
	for <freebsd-gnats-submit@FreeBSD.org>; Wed, 10 Apr 2013 18:33:20 +0000 (UTC)
Received: from red.freebsd.org (localhost [127.0.0.1])
	by red.freebsd.org (8.14.5/8.14.5) with ESMTP id r3AIXK0n053109
	for <freebsd-gnats-submit@FreeBSD.org>; Wed, 10 Apr 2013 18:33:20 GMT
	(envelope-from nobody@red.freebsd.org)
Received: (from nobody@localhost)
	by red.freebsd.org (8.14.5/8.14.5/Submit) id r3AIXKBo053108;
	Wed, 10 Apr 2013 18:33:20 GMT
	(envelope-from nobody)
Message-Id: <201304101833.r3AIXKBo053108@red.freebsd.org>
Date: Wed, 10 Apr 2013 18:33:20 GMT
From: Sean Bruno <sbruno@FreeBSD.org>
To: freebsd-gnats-submit@FreeBSD.org
Subject: net-mgmt/net-snmp fails on certain kvm_read() calls via auto_nlist()
X-Send-Pr-Version: www-3.1
X-GNATS-Notify:

>Number:         177761
>Category:       ports
>Synopsis:       net-mgmt/net-snmp fails on certain kvm_read() calls via auto_nlist()
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    zi
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Wed Apr 10 18:40:00 UTC 2013
>Closed-Date:    Thu May 30 11:55:46 UTC 2013
>Last-Modified:  Thu May 30 12:00:00 UTC 2013
>Originator:     Sean Bruno
>Release:        10-current
>Organization:
FreeBSD Project
>Environment:
FreeBSD powernoodle 10.0-CURRENT FreeBSD 10.0-CURRENT #1 r248817M: Thu Mar 28 00:59:30 PDT 2013     sbruno@powernoodle:/usr/obj/usr/src/sys/POWERNOODLE  amd64

>Description:
a recent change to 9/stable and 10/current causes the following code snippet to fail
.. snip ...
static struct vmmeter sum;
..
auto_nlist("cnt", (char *)&sum, sizeof sum);


>How-To-Repeat:
Generate a small agent library that returns the contents a kvm_read() of "cnt" in kernel space.  Example code is a bit tricky, but can be supplied on request.
>Fix:
More or less, the memory was not zeroed in auto_nlist.c ... this indirectly casues the kvm_read() to get very bogus values and fail.  zero the memory out via calloc() or the attached patch to bzero it.

The diff is for 5.7.1 but is valid in my testing of 5.7.2

Patch attached with submission follows:

--- //depot/yahoo/ybsd_common/usr.local/net-snmp-5.7.1/agent/auto_nlist.c       2012-09-06 19:09:48.000000000 0000
+++ /home/seanbru/net-snmp-5.7.1/agent/auto_nlist.c     2012-09-06 19:09:48.000000000 0000
@@ -53,6 +53,7 @@
     }
     if (*ptr == 0) {
         *ptr = (struct autonlist *) malloc(sizeof(struct autonlist));
+                               bzero(*ptr, sizeof(struct autonlist));
         it = *ptr;
         it->left = 0;
         it->right = 0;



>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-bugs->freebsd-ports-bugs 
Responsible-Changed-By: linimon 
Responsible-Changed-When: Wed Apr 10 19:37:17 UTC 2013 
Responsible-Changed-Why:  
ports PR. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=177761 
Responsible-Changed-From-To: freebsd-ports-bugs->zi 
Responsible-Changed-By: edwin 
Responsible-Changed-When: Wed Apr 10 19:37:44 UTC 2013 
Responsible-Changed-Why:  
Over to maintainer (via the GNATS Auto Assign Tool) 

http://www.freebsd.org/cgi/query-pr.cgi?pr=177761 

From: Sayetsky Anton <vsjcfm@gmail.com>
To: bug-followup@freebsd.org
Cc:  
Subject: Re: ports/177761: net-mgmt/net-snmp fails on certain kvm_read() calls
 via auto_nlist()
Date: Thu, 30 May 2013 10:57:56 +0300

 Confirmed on FreeBSD 9.1-RELEASE-p3 amd64.
 
 May 30 10:41:08 vpn5 snmpd[74361]: kvm_read(*, 802c54fd0,
 0x7fffffffc008, 8) = -1: kvm_read: Bad address
 May 30 10:41:08 vpn5 snmpd[74361]: auto_nlist failed on ifnet at
 location 802c54fd0
 May 30 10:41:08 vpn5 snmpd[74361]: kvm_read(*, 802c54fd0,
 0x7fffffffc008, 8) = -1: kvm_read: Bad address
 May 30 10:41:08 vpn5 snmpd[74361]: auto_nlist failed on ifnet at
 location 802c54fd0
 May 30 10:41:08 vpn5 snmpd[74361]: kvm_read(*, 802c54fd0,
 0x7fffffffc008, 8) = -1: kvm_read: Bad address
 May 30 10:41:08 vpn5 snmpd[74361]: auto_nlist failed on ifnet at
 location 802c54fd0
 May 30 10:43:15 vpn5 snmpd[74361]: kvm_read(*, 802c54fd0,
 0x7fffffffc008, 8) = -1: kvm_read: Bad address
 May 30 10:43:15 vpn5 snmpd[74361]: auto_nlist failed on ifnet at
 location 802c54fd0
 May 30 10:43:15 vpn5 snmpd[74361]: kvm_read(*, 802c54fd0,
 0x7fffffffc008, 8) = -1: kvm_read: Bad address
 May 30 10:43:15 vpn5 snmpd[74361]: auto_nlist failed on ifnet at
 location 802c54fd0
 May 30 10:43:15 vpn5 snmpd[74361]: kvm_read(*, 802c54fd0,
 0x7fffffffc008, 8) = -1: kvm_read: Bad address
 May 30 10:43:15 vpn5 snmpd[74361]: auto_nlist failed on ifnet at
 location 802c54fd0
 
 This happens each time when I'm requesting info from snmpd.

From: Sayetsky Anton <vsjcfm@gmail.com>
To: bug-followup@freebsd.org
Cc:  
Subject: Re: ports/177761: net-mgmt/net-snmp fails on certain kvm_read() calls
 via auto_nlist()
Date: Thu, 30 May 2013 11:05:22 +0300

 Patch is incorrect for net-snmp-5.7.2_2 (line number changed).
 Using a corrected one fixed the problem.
State-Changed-From-To: open->closed 
State-Changed-By: zi 
State-Changed-When: Thu May 30 11:55:45 UTC 2013 
State-Changed-Why:  
Committed. Thanks! 

http://www.freebsd.org/cgi/query-pr.cgi?pr=177761 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: ports/177761: commit references a PR
Date: Thu, 30 May 2013 11:55:38 +0000 (UTC)

 Author: zi
 Date: Thu May 30 11:55:31 2013
 New Revision: 319417
 URL: http://svnweb.freebsd.org/changeset/ports/319417
 
 Log:
   - Fix kvm_read() issue
   - Bump PORTREVISION
   
   PR:		ports/177761
   Submitted by:	sbruno@
 
 Added:
   head/net-mgmt/net-snmp/files/patch-agent__auto_nlist.c   (contents, props changed)
 Modified:
   head/net-mgmt/net-snmp/Makefile
 
 Modified: head/net-mgmt/net-snmp/Makefile
 ==============================================================================
 --- head/net-mgmt/net-snmp/Makefile	Thu May 30 11:52:44 2013	(r319416)
 +++ head/net-mgmt/net-snmp/Makefile	Thu May 30 11:55:31 2013	(r319417)
 @@ -3,7 +3,7 @@
  
  PORTNAME=	snmp
  PORTVERSION=	5.7.2
 -PORTREVISION=	2
 +PORTREVISION=	3
  CATEGORIES=	net-mgmt ipv6
  MASTER_SITES=	SF/net-${PORTNAME}/net-${PORTNAME}/${PORTVERSION}
  PKGNAMEPREFIX=	net-
 
 Added: head/net-mgmt/net-snmp/files/patch-agent__auto_nlist.c
 ==============================================================================
 --- /dev/null	00:00:00 1970	(empty, because file is newly added)
 +++ head/net-mgmt/net-snmp/files/patch-agent__auto_nlist.c	Thu May 30 11:55:31 2013	(r319417)
 @@ -0,0 +1,10 @@
 +--- ./agent/auto_nlist.c.orig	2012-10-09 18:28:58.000000000 -0400
 ++++ ./agent/auto_nlist.c	2013-04-10 14:26:21.000000000 -0400
 +@@ -56,6 +56,7 @@
 +         static char *n_name = NULL;
 + #endif
 +         *ptr = (struct autonlist *) malloc(sizeof(struct autonlist));
 ++                               bzero(*ptr, sizeof(struct autonlist));
 +         it = *ptr;
 +         it->left = 0;
 +         it->right = 0;
 _______________________________________________
 svn-ports-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-ports-all
 To unsubscribe, send any mail to "svn-ports-all-unsubscribe@freebsd.org"
 
>Unformatted:
