'; }
Bug 131434 - lang/perl5.8: suid fails
Summary: lang/perl5.8: suid fails
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Only Me
Assignee: skv
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-02-05 21:20 UTC by wolson
Modified: 2009-02-15 22:50 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description wolson 2009-02-05 21:20:03 UTC
When installing perl 5.9, there is a known bug listed here:

http://www.nntp.perl.org/group/perl.perl5.porters/2008/12/msg142837.html

I am having this issue when installing /usr/ports/mail/qmail-scanner1 port with qms-config

Fix: 

in perl.c in release 5.8.9, line 3727 is        if (*suidscript) {
                                      should be if (*suidscript != 1) {
How-To-Repeat: If you do not do the perl fix

When installing qmail-scanner it will install all dependancies for you. So lets go ahead and install it!


# cd /usr/ports/mail/qmail-scanner1/
# make extract

Configuring qms-analog

This is the second tarball we will need to download to get reporting out of qmail-scanner so lets get started!


# cd work
# fetch http://freebsdrocks.net/files/qms-analog-0.4.2.tar.gz
# tar zxvf qms-analog-0.4.2.tar.gz
# cd qms-analog-0.4.2
# gmake all
# cp qmail-scanner-1.25-st-qms-YYYYMMDD.patch ../qmail-scanner-1.25

Now we need to change to the qmail-scanner source, patch it and then run the configure scripts:


# cd ../qmail-scanner-1.25
# patch -p1 < qmail-scanner-1.25-st-qms-YYYYMMDD.patch

You should get a pretty large output. When it is done it will say done at the bottom if it installed the patch correctly.

Installing qmail-scanner

We now need to change the qms-config to match your settings. Please remember the sections in bold need to be changed to your domain specific settings:


# vi qms-config

./configure    --domain yourdomain.com \
               --admin postmaster \
               --local-domains "yourdomain.com,yourotherdomain.com" \
               --add-dscr-hdrs yes \
               --dscr-hdrs-text "X-Antivirus-MYDOMAIN" \
               --ignore-eol-check yes \
               --sa-quarantine 0 \
               --sa-delete 0 \
               --sa-reject no \
               --sa-subject ":SPAM:" \
               --sa-alt yes \
               --sa-debug no \
               --notify admin \
               --redundant yes \
               --qms-monitor no \
               "$INSTALL"

One of the options is having the headers of your emails display which rules determined the scores. You can do this as an option if you like. If you get a message thats marked spam and it's actually a ham, you can see what rules set it to be spam. This is quite useful when determining problems. Add the following options after the --notify admin but before the "$INSTALL" line in the qms-config script above:


 --sa-alt yes \
--sa-debug yes \
--sa-report yes\

Now we need to chmod the qms-config and give it a test run:


# chmod 755 qms-config
# ./qms-config

When it asks you:


Continue? ([Y]/N)

go ahead and hit Y. It will ask you the same thing twice to verfy the installation.

You will see the error at the end
Comment 1 Remko Lodder freebsd_committerfreebsd_triage 2009-02-06 08:14:52 UTC
Responsible Changed
From-To: freebsd-i386->freebsd-ports-bugs

reassign to ports
Comment 2 Pav Lucistnik freebsd_committerfreebsd_triage 2009-02-09 13:03:14 UTC
Responsible Changed
From-To: freebsd-ports-bugs->skv

Over to maintainer
Comment 3 Johan Ström 2009-02-13 17:07:19 UTC
Just want to confirm that the fix is correct. This affected my  
BackupPC installation, where the CGI admin interface broke.

In patch format (using the #define TRUE instead of 1, as I saw is done  
in other places in the source):

--- perl.c.org  2009-02-12 12:10:14.948437830 +0100
+++ perl.c      2009-02-12 12:10:30.965410704 +0100
@@ -3724,7 +3724,7 @@
   * perl with that fd as it has always done.
   */
      }
-    if (*suidscript) {
+    if (*suidscript != TRUE)  {
         Perl_croak(aTHX_ "suidperl needs (suid) fd script\n");
      }
  #else /* IAMSUID */


Johan
Comment 4 dfilter service freebsd_committerfreebsd_triage 2009-02-15 22:42:49 UTC
skv         2009-02-15 22:42:37 UTC

  FreeBSD ports repository

  Modified files:
    lang/perl5.8         Makefile distinfo 
    lang/perl5.8/files   patch-perl.c 
  Log:
  * Fix suidperl functionality. [1]
  * Update BSDPAN.
  
  PR:             ports/131434 [1]
  Submitted by:   William Olson <wolson xx gmail.com> [1]
  
  Revision  Changes    Path
  1.100     +3 -1      ports/lang/perl5.8/Makefile
  1.26      +3 -3      ports/lang/perl5.8/distinfo
  1.6       +9 -0      ports/lang/perl5.8/files/patch-perl.c
_______________________________________________
cvs-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/cvs-all
To unsubscribe, send any mail to "cvs-all-unsubscribe@freebsd.org"
Comment 5 skv freebsd_committerfreebsd_triage 2009-02-15 22:42:56 UTC
State Changed
From-To: open->closed

Committed, thanks!