diff --git a/psmisc-22.7-memleaks.patch b/psmisc-22.7-memleaks.patch index 2216de6..8808ee9 100644 --- a/psmisc-22.7-memleaks.patch +++ b/psmisc-22.7-memleaks.patch @@ -1,5 +1,5 @@ --- src/fuser.c -+++ src/fuser.c 2009-05-11 13:55:56.314402075 +0200 ++++ src/fuser.c 2009-08-10 11:30:01.674401417 +0200 @@ -225,6 +225,9 @@ static void scan_procs(const opt_type op if (islocatedon(&cwd_real[0], ino_tmp->name->filename)) add_matched_proc(ino_tmp->name, pid, uid, ACCESS_CWD); @@ -131,7 +131,24 @@ this_name->filename = strdup(real); } -@@ -1218,23 +1224,25 @@ static struct stat *get_pidstat(const op +@@ -662,7 +668,7 @@ void find_net_sockets(struct inode_list + + + } +- return ; ++ fclose(fp); + } + + #ifdef WITH_IPV6 +@@ -725,6 +731,7 @@ void find_net6_sockets(struct inode_list + } + } + } ++ fclose(fp); + } + #endif + +@@ -1218,23 +1225,25 @@ static struct stat *get_pidstat(const op char pathname[256]; struct stat *st; @@ -163,7 +180,7 @@ DIR *dirp; struct dirent *direntry; struct inode_list *ino_tmp; -@@ -1243,13 +1251,13 @@ static void check_dir(const pid_t pid, c +@@ -1243,13 +1252,13 @@ static void check_dir(const pid_t pid, c struct stat st, lst; if ( (dirpath = malloc(MAX_PATHNAME)) == NULL) @@ -180,7 +197,7 @@ while ( (direntry = readdir(dirp)) != NULL) { if (direntry->d_name[0] < '0' || direntry->d_name[0] > '9') continue; -@@ -1293,8 +1301,11 @@ static void check_dir(const pid_t pid, c +@@ -1293,8 +1302,11 @@ static void check_dir(const pid_t pid, c } } /* while fd_dent */ closedir(dirp); @@ -194,7 +211,7 @@ } static void check_map(const pid_t pid, const char *filename, struct device_list *dev_head, struct inode_list *ino_head, const uid_t uid, const char access) -@@ -1349,7 +1360,7 @@ void add_mount_device(struct mountdev_li +@@ -1349,7 +1361,7 @@ void add_mount_device(struct mountdev_li struct mountdev_list *newmount; /*printf("Adding mount Path: %s Dir:%s dev:%0x\n",dir, fsname, device);*/ @@ -203,7 +220,7 @@ return; newmount->fsname = strdup(fsname); newmount->dir = strdup(dir); -@@ -1394,14 +1405,17 @@ void fill_unix_cache(struct unixsocket_l +@@ -1394,14 +1406,17 @@ void fill_unix_cache(struct unixsocket_l free(path); continue; } diff --git a/psmisc.changes b/psmisc.changes index 56cba66..6edc7d4 100644 --- a/psmisc.changes +++ b/psmisc.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Mon Aug 10 11:27:07 CEST 2009 - werner@suse.de + +- Close file descriptor leak (bnc#529520) + ------------------------------------------------------------------- Fri Jul 10 19:28:53 UTC 2009 - jansimon.moeller@opensuse.org diff --git a/psmisc.spec b/psmisc.spec index e8c908f..70d8e6b 100644 --- a/psmisc.spec +++ b/psmisc.spec @@ -27,7 +27,7 @@ Group: System/Monitoring PreReq: %fillup_prereq %insserv_prereq AutoReqProv: on Version: 22.7 -Release: 3 +Release: 4 Provides: ps:/usr/bin/killall Summary: Utilities for managing processes on your system Source: http://switch.dl.sourceforge.net/sourceforge/psmisc/psmisc-%{version}.tar.bz2