summaryrefslogtreecommitdiff
path: root/udev.h
diff options
context:
space:
mode:
authorkay.sievers@vrfy.org <kay.sievers@vrfy.org>2004-02-26 19:37:47 -0800
committerGreg KH <gregkh@suse.de>2005-04-26 21:32:30 -0700
commitc472e3c89b9aaad90ad6398c0d2ff5dcf5a9d238 (patch)
treedf5bf5be11d19b5b29b6507055964a6d0a688a1a /udev.h
parent167a27e70f4010fdce561cff2ea1a07730aae28a (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 'udev.h')
-rw-r--r--udev.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/udev.h b/udev.h
index b5088b90c..fc44a9847 100644
--- a/udev.h
+++ b/udev.h
@@ -61,6 +61,12 @@ do { \
strncpy(to, from, sizeof(to)-1); \
} while (0)
+#define strfieldcat(to, from) \
+do { \
+ to[sizeof(to)-1] = '\0'; \
+ strncat(to, from, sizeof(to) - strlen(to) -1); \
+} while (0)
+
extern int udev_add_device(char *path, char *subsystem, int fake);
extern int udev_remove_device(char *path, char *subsystem);
extern void udev_init_config(void);