Author: dim
Date: Sat Dec 17 01:19:07 2011
New Revision: 228614
URL: http://svn.freebsd.org/changeset/base/228614

Log:
  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 after:    1 week

Modified:
  head/sbin/dhclient/clparse.c
  head/sbin/dhclient/parse.c

Modified: head/sbin/dhclient/clparse.c
==============================================================================
--- head/sbin/dhclient/clparse.c        Sat Dec 17 01:02:56 2011        
(r228613)
+++ head/sbin/dhclient/clparse.c        Sat Dec 17 01:19:07 2011        
(r228614)
@@ -873,6 +873,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. */
@@ -890,10 +891,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);
+               strlcpy(tmp->string, val, valsize);
                tmp->next = NULL;
 
                /* Store this medium at the end of the media list. */

Modified: head/sbin/dhclient/parse.c
==============================================================================
--- head/sbin/dhclient/parse.c  Sat Dec 17 01:02:56 2011        (r228613)
+++ head/sbin/dhclient/parse.c  Sat Dec 17 01:19:07 2011        (r228614)
@@ -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);
+       strlcpy(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);
+                       strlcpy(t, val, valsize);
                        c = cons(t, c);
                }
        } while (++count != *max);
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "[email protected]"

Reply via email to