chiark / gitweb /
[PATCH] udev - safer string handling - part two
[elogind.git] / udev.h
diff --git a/udev.h b/udev.h
index b5088b90c69e136d84e6ecd23dc165829e211e5c..0ce010f3c49071131795f70a0873c02fba3d9428 100644 (file)
--- a/udev.h
+++ b/udev.h
@@ -61,6 +61,24 @@ 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)
+
+#define strnfieldcpy(to, from, maxsize) \
+do { \
+       to[maxsize-1] = '\0'; \
+       strncpy(to, from, maxsize-1); \
+} while (0)
+
+#define strnfieldcat(to, from, maxsize) \
+do { \
+       to[maxsize-1] = '\0'; \
+       strncat(to, from, maxsize - 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);