Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 13 Jan 2017 09:19:09 +0000 (UTC)
From:      Ngie Cooper <ngie@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject:   svn commit: r312059 - stable/11/contrib/bsnmp/snmpd
Message-ID:  <201701130919.v0D9J96p068650@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: ngie
Date: Fri Jan 13 09:19:09 2017
New Revision: 312059
URL: https://svnweb.freebsd.org/changeset/base/312059

Log:
  MFC r311381:
  
  lsock_init_port: address issues with initializing sockaddr_un object
  
  - Use strlcpy to ensure p->name doesn't overflow sa.sun_path [*].
  - Use SUN_LEN(..) instead of spelling out calculation longhand (inspired
    by comment by jmallett).
  
  Tested with:	dgram and stream support with both bsnmpwalk and snmpwalk
  
  CID:		1006825

Modified:
  stable/11/contrib/bsnmp/snmpd/trans_lsock.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/contrib/bsnmp/snmpd/trans_lsock.c
==============================================================================
--- stable/11/contrib/bsnmp/snmpd/trans_lsock.c	Fri Jan 13 09:19:04 2017	(r312058)
+++ stable/11/contrib/bsnmp/snmpd/trans_lsock.c	Fri Jan 13 09:19:09 2017	(r312059)
@@ -305,10 +305,9 @@ lsock_init_port(struct tport *tp)
 			return (SNMP_ERR_RES_UNAVAIL);
 		}
 
-		strcpy(sa.sun_path, p->name);
+		strlcpy(sa.sun_path, p->name, sizeof(sa.sun_path));
 		sa.sun_family = AF_LOCAL;
-		sa.sun_len = strlen(p->name) +
-		    offsetof(struct sockaddr_un, sun_path);
+		sa.sun_len = SUN_LEN(&sa);
 
 		(void)remove(p->name);
 
@@ -360,10 +359,9 @@ lsock_init_port(struct tport *tp)
 			return (SNMP_ERR_GENERR);
 		}
 
-		strcpy(sa.sun_path, p->name);
+		strlcpy(sa.sun_path, p->name, sizeof(sa.sun_path));
 		sa.sun_family = AF_LOCAL;
-		sa.sun_len = strlen(p->name) +
-		    offsetof(struct sockaddr_un, sun_path);
+		sa.sun_len = SUN_LEN(&sa);
 
 		(void)remove(p->name);
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201701130919.v0D9J96p068650>