diff options
author | kay.sievers@vrfy.org <kay.sievers@vrfy.org> | 2004-02-26 19:37:47 -0800 |
---|---|---|
committer | Greg KH <gregkh@suse.de> | 2005-04-26 21:32:30 -0700 |
commit | c472e3c89b9aaad90ad6398c0d2ff5dcf5a9d238 (patch) | |
tree | df5bf5be11d19b5b29b6507055964a6d0a688a1a /namedev_parse.c | |
parent | 167a27e70f4010fdce561cff2ea1a07730aae28a (diff) |
[PATCH] udev - safer string handling all over the place
On Tue, Feb 24, 2004 at 11:50:52PM +0100, Kay Sievers wrote:
> Here is the first step towards a safer string handling.
> More will follow, but for now only the easy ones :)
>
> Thanks to all who pointed this out. strncat() isn't a nice function. We
> all should remember that the destination string is not terminated if the
> given lenght is shorter than the strlen of the source string.
>
> And shame on the various implementers of strfieldcat() I found in the
> unapplied patches on this list, it's not really better than strncpy()
> and hides the real problem.
Hmm, bk didn't checked in one file, maybe I edited it again as root.
Nevermind, here is the more complete version.
Diffstat (limited to 'namedev_parse.c')
-rw-r--r-- | namedev_parse.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/namedev_parse.c b/namedev_parse.c index 013878c679..d300b0907d 100644 --- a/namedev_parse.c +++ b/namedev_parse.c @@ -319,21 +319,21 @@ static int namedev_parse_permissions(char *filename) dbg("cannot parse line '%s'", line); continue; } - strncpy(dev.name, temp2, sizeof(dev.name)); + strfieldcpy(dev.name, temp2); temp2 = strsep(&temp, ":"); if (!temp2) { dbg("cannot parse line '%s'", line); continue; } - strncpy(dev.owner, temp2, sizeof(dev.owner)); + strfieldcpy(dev.owner, temp2); temp2 = strsep(&temp, ":"); if (!temp2) { dbg("cannot parse line '%s'", line); continue; } - strncpy(dev.group, temp2, sizeof(dev.group)); + strfieldcpy(dev.group, temp2); if (!temp) { dbg("cannot parse line: %s", line); @@ -422,7 +422,7 @@ static int call_foreach_file(int parser (char *f) , char *filename, char *extens /* parse every file in the list */ list_for_each_entry_safe(loop_file, tmp_file, &file_list, list) { strfieldcpy(file, filename); - strcat(file, loop_file->name); + strfieldcat(file, loop_file->name); parser(file); list_del(&loop_file->list); free(loop_file); |