svn commit: r324007 - head/usr.sbin/mountd

Emmanuel Vadot manu at FreeBSD.org
Tue Sep 26 09:18:19 UTC 2017


Author: manu
Date: Tue Sep 26 09:18:18 2017
New Revision: 324007
URL: https://svnweb.freebsd.org/changeset/base/324007

Log:
  mountd: Replace malloc+strcpy to strdup
  
  Reviewed by:	bapt
  MFC after:	1 week
  Sponsored by:	Gandi.net
  Differential Revision:	https://reviews.freebsd.org/D12503

Modified:
  head/usr.sbin/mountd/mountd.c

Modified: head/usr.sbin/mountd/mountd.c
==============================================================================
--- head/usr.sbin/mountd/mountd.c	Tue Sep 26 09:01:56 2017	(r324006)
+++ head/usr.sbin/mountd/mountd.c	Tue Sep 26 09:18:18 2017	(r324007)
@@ -101,7 +101,7 @@ struct dirlist {
 	struct dirlist	*dp_right;
 	int		dp_flag;
 	struct hostlist	*dp_hosts;	/* List of hosts this dir exported to */
-	char		dp_dirp[1];	/* Actually malloc'd to size of dir */
+	char		*dp_dirp;
 };
 /* dp_flag bits */
 #define	DP_DEFSET	0x1
@@ -1525,12 +1525,8 @@ get_exportlist_one(void)
 					if (ep == (struct exportlist *)NULL) {
 					    ep = get_exp();
 					    ep->ex_fs = fsb.f_fsid;
-					    ep->ex_fsdir = (char *)malloc
-					        (strlen(fsb.f_mntonname) + 1);
-					    if (ep->ex_fsdir)
-						strcpy(ep->ex_fsdir,
-						    fsb.f_mntonname);
-					    else
+					    ep->ex_fsdir = strdup(fsb.f_mntonname);
+					    if (ep->ex_fsdir == NULL)
 						out_of_mem();
 					    if (debug)
 						warnx(
@@ -1940,14 +1936,16 @@ add_expdir(struct dirlist **dpp, char *cp, int len)
 {
 	struct dirlist *dp;
 
-	dp = (struct dirlist *)malloc(sizeof (struct dirlist) + len);
+	dp = (struct dirlist *)malloc(sizeof (struct dirlist));
 	if (dp == (struct dirlist *)NULL)
 		out_of_mem();
 	dp->dp_left = *dpp;
 	dp->dp_right = (struct dirlist *)NULL;
 	dp->dp_flag = 0;
 	dp->dp_hosts = (struct hostlist *)NULL;
-	strcpy(dp->dp_dirp, cp);
+	dp->dp_dirp = strndup(cp, len);
+	if (dp->dp_dirp == NULL)
+		out_of_mem();
 	*dpp = dp;
 	return (dp->dp_dirp);
 }


More information about the svn-src-all mailing list