chiark / gitweb /
[PATCH] udev - safer string handling - part two
[elogind.git] / udev.h
diff --git a/udev.h b/udev.h
index e8f93ad5ada2c49fb8076742a50bf14bddaad906..0ce010f3c49071131795f70a0873c02fba3d9428 100644 (file)
--- a/udev.h
+++ b/udev.h
@@ -23,7 +23,7 @@
 #ifndef UDEV_H
 #define UDEV_H
 
-#include "libsysfs/libsysfs.h"
+#include <sysfs/libsysfs.h>
 #include <stddef.h>
 #include <sys/param.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);
@@ -78,5 +96,6 @@ extern char default_mode_str[MODE_SIZE];
 extern char default_owner_str[OWNER_SIZE];
 extern char default_group_str[GROUP_SIZE];
 extern int udev_log;
+extern int udev_sleep;
 
 #endif