From: dsteklof@us.ibm.com Date: Thu, 27 Nov 2003 01:31:59 +0000 (-0800) Subject: [PATCH] quick fix for libsysfs bus X-Git-Tag: 008~32 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=b376d32cb462455053061d2cf3da3ac640fd37ee;hp=ff44a6b0b7e98c9f696ee13c197d982819991de8 [PATCH] quick fix for libsysfs bus There seems to be a mismatch in udev and in libsysfs as to what to expect if the mnt point has a slash on the end or not. If I use the included patch, it breaks something in udev. If I patch sysfs_get_mnt_path I break udev as well because what you're expecting. I need to sit down and go through the library and creaate a rule as to trailing slashes. Adding the env brought this to light. --- diff --git a/libsysfs/sysfs_device.c b/libsysfs/sysfs_device.c index fbd046f22..2a5353e6f 100644 --- a/libsysfs/sysfs_device.c +++ b/libsysfs/sysfs_device.c @@ -28,6 +28,7 @@ static int confirm_device_bus(struct sysfs_device *dev, { struct sysfs_link *devlink = NULL; unsigned char devpath[SYSFS_PATH_MAX]; + unsigned char *s = NULL; int result = 0; if (busname == NULL || bus_id == NULL) @@ -36,6 +37,9 @@ static int confirm_device_bus(struct sysfs_device *dev, if (sysfs_get_mnt_path(devpath, SYSFS_PATH_MAX) != 0) return -1; + s = &devpath[strlen(devpath)-1]; + if (strncmp(s, "/", 1) == 0) + *s = '\0'; strcat(devpath, SYSFS_BUS_DIR); strcat(devpath, "/"); strcat(devpath, busname);