Author: dim
Date: Sun Jan  1 17:42:02 2012
New Revision: 229177
URL: http://svn.freebsd.org/changeset/base/229177

Log:
  MFC r228614:
  
    In sbin/dhclient, work around warnings about the size argument to
    strlcpy appearing to be the size of the source buffer, instead of the
    destination.
  
  MFC r228615:
  
    In sbin/dhclient, since we know the size of the source strings anyway,
    we might as well use memcpy; strlcpy is really unnecessary here.

Modified:
  stable/9/sbin/dhclient/clparse.c
  stable/9/sbin/dhclient/parse.c
Directory Properties:
  stable/9/sbin/dhclient/   (props changed)

Modified: stable/9/sbin/dhclient/clparse.c
==============================================================================
--- stable/9/sbin/dhclient/clparse.c    Sun Jan  1 17:37:17 2012        
(r229176)
+++ stable/9/sbin/dhclient/clparse.c    Sun Jan  1 17:42:02 2012        
(r229177)
@@ -871,6 +871,7 @@ parse_string_list(FILE *cfile, struct st
 {
        int                      token;
        char                    *val;
+       size_t                   valsize;
        struct string_list      *cur, *tmp;
 
        /* Find the last medium in the media list. */
@@ -888,10 +889,11 @@ parse_string_list(FILE *cfile, struct st
                        return;
                }
 
-               tmp = new_string_list(strlen(val) + 1);
+               valsize = strlen(val) + 1;
+               tmp = new_string_list(valsize);
                if (tmp == NULL)
                        error("no memory for string list entry.");
-               strlcpy(tmp->string, val, strlen(val) + 1);
+               memcpy(tmp->string, val, valsize);
                tmp->next = NULL;
 
                /* Store this medium at the end of the media list. */

Modified: stable/9/sbin/dhclient/parse.c
==============================================================================
--- stable/9/sbin/dhclient/parse.c      Sun Jan  1 17:37:17 2012        
(r229176)
+++ stable/9/sbin/dhclient/parse.c      Sun Jan  1 17:42:02 2012        
(r229177)
@@ -116,6 +116,7 @@ char *
 parse_string(FILE *cfile)
 {
        char *val, *s;
+       size_t valsize;
        int token;
 
        token = next_token(&val, cfile);
@@ -124,10 +125,11 @@ parse_string(FILE *cfile)
                skip_to_semi(cfile);
                return (NULL);
        }
-       s = malloc(strlen(val) + 1);
+       valsize = strlen(val) + 1;
+       s = malloc(valsize);
        if (!s)
                error("no memory for string %s.", val);
-       strlcpy(s, val, strlen(val) + 1);
+       memcpy(s, val, valsize);
 
        if (!parse_semi(cfile))
                return (NULL);
@@ -242,6 +244,7 @@ parse_numeric_aggregate(FILE *cfile, uns
        unsigned char *bufp = buf, *s = NULL;
        int token, count = 0;
        char *val, *t;
+       size_t valsize;
        pair c = NULL;
 
        if (!bufp && *max) {
@@ -288,10 +291,11 @@ parse_numeric_aggregate(FILE *cfile, uns
                        convert_num(s, val, base, size);
                        s += size / 8;
                } else {
-                       t = malloc(strlen(val) + 1);
+                       valsize = strlen(val) + 1;
+                       t = malloc(valsize);
                        if (!t)
                                error("no temp space for number.");
-                       strlcpy(t, val, strlen(val) + 1);
+                       memcpy(t, val, valsize);
                        c = cons(t, c);
                }
        } while (++count != *max);
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to