Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 24 Jul 2010 12:23:49 GMT
From:      Michael Scheidell <scheidell@secnap.net>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   ports/148893: UPDATE fix security/swatch  rc.d script
Message-ID:  <201007241223.o6OCNnZt012196@www.freebsd.org>
Resent-Message-ID: <201007241230.o6OCU55g069370@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         148893
>Category:       ports
>Synopsis:       UPDATE fix security/swatch  rc.d script
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sat Jul 24 12:30:05 UTC 2010
>Closed-Date:
>Last-Modified:
>Originator:     Michael Scheidell
>Release:        6.2 - 7.3
>Organization:
SECNAP Network Security
>Environment:
i386, sparc64 and amd64
>Description:
many rc.d scripts that use perl may not function correctly unless procname=/usr/local/bin/perl is set.
if it can't find the pid, a restart or start will just start multiple copies of swatch.  critical maintenance functions, scripts, routines might be duplicated, causing strange problems.

example is swatch, since, at least 6.2 days.

./rc.d/swatch(.sh) status can't find swatch, since rc.subr is trying to find a PROGRAM called swatch and can't.
set procname, and it can find it.

/usr/local/etc/rc.d/swatch restart
swatch not running?
Starting swatch.
ionspam.spammertrap.net# ps -auxww | grep swatch
root    25957  2.5  1.4  9000  7364  ??  Ss    8:09AM   0:00.00 /usr/local/bin/perl /tmp/.swatch_script.25955
root    19676  0.0  0.4  9004  1896  ??  Is   17Jul10   0:00.60 /usr/local/bin/perl /tmp/.swatch_script.19674
root    25960  0.0  0.2  3312   948  p0  S+    8:09AM   0:00.00 grep swatch
ionspam.spammertrap.net#
ionspam.spammertrap.net# pkill -9 -f swatch
ionspam.spammertrap.net# ps -auxww | grep swatch
root    25970  0.0  0.2  3312   960  p0  S+    8:10AM   0:00.00 grep swatch
ionspam.spammertrap.net# /usr/local/etc/rc.d/swatch start
Starting swatch.
ionspam.spammertrap.net# /usr/local/etc/rc.d/swatch status
swatch is not running.
ionspam.spammertrap.net# ps -auxww | grep swatch
root    25980  1.4  1.4  9000  7380  ??  Ss    8:10AM   0:00.00 /usr/local/bin/perl /tmp/.swatch_script.25978
root    25995  0.0  0.2  3312   960  p0  S+    8:10AM   0:00.00 grep swatch
ionspam.spammertrap.net# pkill -9 -f swatch
ionspam.spammertrap.net# patch swatch < patch.txt
ionspam.spammertrap.net# /usr/local/etc/rc.d/swatch start
Starting swatch.
ionspam.spammertrap.net# ps -auxww | grep swatch
root    26029  2.8  1.4  9000  7380  ??  Ss    8:11AM   0:00.00 /usr/local/bin/perl /tmp/.swatch_script.26027
root    26037  0.0  0.2  3312   960  p0  S+    8:11AM   0:00.00 grep swatch
ionspam.spammertrap.net# /usr/local/etc/rc.d//swatch status
swatch is running as pid 26029.


>How-To-Repeat:
./rc.d/swatch start
./rc.d/swatch status

(note: it doesn't ALWAYS miss it, can't tell you why, some systems find it, but it will ALWAYS find it if you add procname. but I have seen this since at least 6.2 sparc64.  there even might be patches I submitted years ago, trying to fix it, but this will fix it and is upwards compatible. tested on 6.2 through 7.3. tested on amd64, sparc64, and i386.
tested with perl 5.8.8 through 5.10.
>Fix:
--- /tmp/swatch	2010-07-24 08:20:28.000000000 -0400
+++ /usr/local/etc/rc.d/swatch	2010-07-24 08:11:13.000000000 -0400
@@ -23,6 +23,7 @@
 rcvar=`set_rcvar`
 
 command=/usr/local/bin/swatch
+procname=/usr/local/bin/perl
 
 load_rc_config ${name}
 


>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201007241223.o6OCNnZt012196>