aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Ton Voon <tonvoon@users.sourceforge.net> 2004-04-06 16:02:13 +0000
committerGravatar Ton Voon <tonvoon@users.sourceforge.net> 2004-04-06 16:02:13 +0000
commitffa7482cb6de4e2ec2e8f99a832fc9a6425150b6 (patch)
treeab9e672600b6b1e8315bb675b6fc0bdde7d49c2c
parent72d0789bb93484f3a2c5c7e58ee1c97f71431c2e (diff)
downloadmonitoring-plugins-ffa7482cb6de4e2ec2e8f99a832fc9a6425150b6.tar.gz
Fixed weird scanf bug on Solaris
git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@864 f882894a-f735-0410-b71e-b25c423dba1c
-rw-r--r--configure.in5
-rw-r--r--plugins/check_procs.c4
2 files changed, 4 insertions, 5 deletions
diff --git a/configure.in b/configure.in
index f6c33dc6..3173d6d4 100644
--- a/configure.in
+++ b/configure.in
@@ -737,12 +737,15 @@ then
ac_cv_ps_cols=7
AC_MSG_RESULT([$ac_cv_ps_command - with no RSS])
+dnl Solaris 2.6
elif ps -Ao 's comm vsz rss uid user ppid args' 2>/dev/null | \
egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
then
ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
ac_cv_ps_command="$PATH_TO_PS -Ao 's uid ppid vsz rss pcpu comm args'"
- ac_cv_ps_format="%s %d %d %d %d %f %s %n"
+ # There must be no space between the %s and %n due to a wierd problem in sscanf where
+ # it will return %n as longer than the line length
+ ac_cv_ps_format="%s %d %d %d %d %f %s%n"
ac_cv_ps_cols=8
AC_MSG_RESULT([$ac_cv_ps_command])
diff --git a/plugins/check_procs.c b/plugins/check_procs.c
index edb33aca..402daa53 100644
--- a/plugins/check_procs.c
+++ b/plugins/check_procs.c
@@ -155,10 +155,6 @@ main (int argc, char **argv)
/* Zombie processes do not give a procprog command */
if ( cols == (expected_cols - 1) && strstr(procstat, zombie) ) {
cols = expected_cols;
- /* Set some value for procargs for the strip command further below
- Seen to be a problem on some Solaris 7 and 8 systems */
- input_buffer[pos] = '\n';
- input_buffer[pos+1] = 0x0;
}
if ( cols >= expected_cols ) {
resultsum = 0;