- strcpy(dirname, DEVD_DIR);
- strfieldcat(dirname, udev->subsystem);
- call_foreach_file(run_program, dirname, DEVD_SUFFIX, udev);
+ if (udev->subsystem[0] != '\0') {
+ snprintf(dirname, PATH_MAX, "%s/%s", basedir, udev->subsystem);
+ dirname[PATH_MAX-1] = '\0';
+ call_foreach_file(run_program, dirname, suffix, udev);
+ }