diff options
Diffstat (limited to 'net-analyzer/net-snmp/files/net-snmp-5.4.1-process-count-race.patch')
-rw-r--r-- | net-analyzer/net-snmp/files/net-snmp-5.4.1-process-count-race.patch | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/net-analyzer/net-snmp/files/net-snmp-5.4.1-process-count-race.patch b/net-analyzer/net-snmp/files/net-snmp-5.4.1-process-count-race.patch new file mode 100644 index 000000000000..56defedd8b6e --- /dev/null +++ b/net-analyzer/net-snmp/files/net-snmp-5.4.1-process-count-race.patch @@ -0,0 +1,52 @@ +r16705 | tanders | 2007-09-21 01:55:49 +0400 (Птн, 21 Сен 2007) | 3 lines + +CHANGES: snmpd: PATCH: 1746831: from cunnijd: fix process checking race +condition under Linux and platform #ifdefs + +--- agent/mibgroup/ucd-snmp/proc.c (revision 16704) ++++ agent/mibgroup/ucd-snmp/proc.c (revision 16705) +@@ -427,7 +427,7 @@ + return count; + } + +-#elif OSTYPE == NETSNMP_LINUXID ++#elif NETSNMP_OSTYPE == NETSNMP_LINUXID + + #include <dirent.h> + #include <fcntl.h> +@@ -452,7 +452,7 @@ + #ifdef USE_PROC_CMDLINE /* old method */ + /* read /proc/XX/cmdline */ + sprintf(cmdline,"/proc/%s/cmdline",ent->d_name); +- if((fd = open(cmdline, O_RDONLY)) < 0) break; ++ if((fd = open(cmdline, O_RDONLY)) < 0) continue; + len = read(fd,cmdline,sizeof(cmdline) - 1); + close(fd); + if(len <= 0) continue; +@@ -464,7 +464,7 @@ + /* read /proc/XX/status */ + sprintf(cmdline,"/proc/%s/status",ent->d_name); + if ((status = fopen(cmdline, "r")) == NULL) +- break; ++ continue; + if (fgets(cmdline, sizeof(cmdline), status) == NULL) { + fclose(status); + break; +@@ -507,7 +507,7 @@ + return total; + } + +-#elif OSTYPE == NETSNMP_ULTRIXID ++#elif NETSNMP_OSTYPE == NETSNMP_ULTRIXID + + #define NPROCS 32 /* number of proces to read at once */ + +@@ -688,7 +688,7 @@ + return (0); + return (1); + } +-#elif OSTYPE == NETSNMP_SOLARISID ++#elif NETSNMP_OSTYPE == NETSNMP_SOLARISID + + #ifdef _SLASH_PROC_METHOD_ + |