diff options
-rw-r--r-- | namedev.c | 5 | ||||
-rw-r--r-- | udev-add.c | 5 | ||||
-rw-r--r-- | udev-remove.c | 5 | ||||
-rw-r--r-- | udev.h | 6 | ||||
-rw-r--r-- | udevdb.c | 5 |
5 files changed, 15 insertions, 11 deletions
@@ -220,8 +220,9 @@ static void apply_format(struct udevice *udev, char *string, size_t maxsize, char *attr; int len; int i; - int spos, slen; char c; + char *spos; + int slen; struct sysfs_attribute *tmpattr; pos = string; @@ -278,7 +279,6 @@ static void apply_format(struct udevice *udev, char *string, size_t maxsize, i = atoi(attr); if (i > 0) { foreach_strpart(udev->program_result, " \n\r", spos, slen) { - strnfieldcpy(temp2, udev->program_result + spos, slen+1); i--; if (i == 0) break; @@ -287,6 +287,7 @@ static void apply_format(struct udevice *udev, char *string, size_t maxsize, dbg("requested part of result string not found"); break; } + strnfieldcpy(temp2, spos, slen+1); strnfieldcat(string, temp2, maxsize); dbg("substitute part of result string '%s'", temp2); } else { diff --git a/udev-add.c b/udev-add.c index 9562cb5dbb..de1fb953c4 100644 --- a/udev-add.c +++ b/udev-add.c @@ -195,7 +195,8 @@ static int create_node(struct udevice *dev, int fake) gid_t gid = 0; int i; int tail; - int pos, len; + char *pos; + int len; strfieldcpy(filename, udev_root); strfieldcat(filename, dev->name); @@ -281,7 +282,7 @@ static int create_node(struct udevice *dev, int fake) /* create symlink if requested */ foreach_strpart(dev->symlink, " ", pos, len) { - strnfieldcpy(linkname, dev->symlink + pos, len+1); + strnfieldcpy(linkname, pos, len+1); strfieldcpy(filename, udev_root); strfieldcat(filename, linkname); dbg("symlink '%s' to node '%s' requested", filename, dev->name); diff --git a/udev-remove.c b/udev-remove.c index 93adcc7806..195b987411 100644 --- a/udev-remove.c +++ b/udev-remove.c @@ -72,7 +72,8 @@ static int delete_node(struct udevice *dev) char partitionname[NAME_SIZE]; int retval; int i; - int pos, len; + char *pos; + int len; strfieldcpy(filename, udev_root); strfieldcat(filename, dev->name); @@ -102,7 +103,7 @@ static int delete_node(struct udevice *dev) delete_path(filename); foreach_strpart(dev->symlink, " ", pos, len) { - strnfieldcpy(linkname, dev->symlink + pos, len+1); + strnfieldcpy(linkname, pos, len+1); strfieldcpy(filename, udev_root); strfieldcat(filename, linkname); @@ -98,9 +98,9 @@ do { \ } while (0) #define foreach_strpart(str, separator, pos, len) \ - for(pos = 0, len = strcspn(str, separator); \ - (pos) < strlen(str); \ - pos = pos + (len) + 1, len = strcspn((str) + pos, separator)) \ + for(pos = str, len = 0; \ + (pos) < ((str) + strlen(str)); \ + pos = pos + len + strspn(pos, separator), len = strcspn(pos, separator)) \ if (len > 0) static inline char *get_action(void) @@ -179,7 +179,8 @@ static int find_found; static int find_device_by_name(char *path, struct udevice *dev) { - int pos, len; + char *pos; + int len; if (strncmp(dev->name, find_name, sizeof(dev->name)) == 0) { memcpy(find_dev, dev, sizeof(struct udevice)); @@ -190,7 +191,7 @@ static int find_device_by_name(char *path, struct udevice *dev) } /* look for matching symlink*/ foreach_strpart(dev->symlink, " ", pos, len) { - if (strncmp(&dev->symlink[pos], find_name, len) != 0) + if (strncmp(pos, find_name, len) != 0) continue; if (len != strlen(find_name)) |