svn commit: r331867 - stable/11/sys/netsmb

Mark Johnston markj at FreeBSD.org
Sun Apr 1 16:43:31 UTC 2018


Author: markj
Date: Sun Apr  1 16:43:30 2018
New Revision: 331867
URL: https://svnweb.freebsd.org/changeset/base/331867

Log:
  MFC r324102 (by cem):
  netsmb: Fix buggy/racy smb_strdupin()
  
  PR:	222687

Modified:
  stable/11/sys/netsmb/smb_subr.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/netsmb/smb_subr.c
==============================================================================
--- stable/11/sys/netsmb/smb_subr.c	Sun Apr  1 16:42:13 2018	(r331866)
+++ stable/11/sys/netsmb/smb_subr.c	Sun Apr  1 16:43:30 2018	(r331867)
@@ -110,22 +110,11 @@ smb_strdup(const char *s)
 char *
 smb_strdupin(char *s, size_t maxlen)
 {
-	char *p, bt;
+	char *p;
 	int error;
-	size_t len;
 
-	len = 0;
-	for (p = s; ;p++) {
-		if (copyin(p, &bt, 1))
-			return NULL;
-		len++;
-		if (maxlen && len > maxlen)
-			return NULL;
-		if (bt == 0)
-			break;
-	}
-	p = malloc(len, M_SMBSTR, M_WAITOK);
-	error = copyin(s, p, len);
+	p = malloc(maxlen + 1, M_SMBSTR, M_WAITOK);
+	error = copyinstr(s, p, maxlen + 1, NULL);
 	if (error) {
 		free(p, M_SMBSTR);
 		return (NULL);


More information about the svn-src-all mailing list