Sfoglia il codice sorgente

Fixed weird scanf bug on Solaris

git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@864 f882894a-f735-0410-b71e-b25c423dba1c
Ton Voon 22 anni fa
parent
commit
ffa7482cb6
2 ha cambiato i file con 4 aggiunte e 5 eliminazioni
  1. 4 1
      configure.in
  2. 0 4
      plugins/check_procs.c

+ 4 - 1
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])
 

+ 0 - 4
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;