--- a/pidof.c 2006-09-21 15:14:03 +0100 +++ b/pidof.c 2006-09-21 15:13:47 +0100 @@ -53,14 +53,22 @@ struct kinfo_proc *p; int i, n_processes, processes_found = 0; + char *pname = NULL; + + if (process_name == NULL) + return 0; + + if ((pname = strdup(basename(process_name))) == NULL) + return 0; - if ((kd = kvm_open("/dev/null", "/dev/null", "/dev/null", O_RDONLY, "kvm_open")) == NULL) - (void)errx(1, "%s", kvm_geterr(kd)); - else { + if ((kd = kvm_open("/dev/null", "/dev/null", "/dev/null", O_RDONLY, NULL)) == NULL) { + free(pname); + (void)errx(1, "%s", kvm_geterr(kd)); + } else { p = kvm_getprocs(kd, KERN_PROC_PROC, 0, &n_processes); for (i = 0; i