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);
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to