[scponly] --server bug

Graham Toal gtoal at gtoal.com
Thu Aug 9 17:57:54 EDT 2007


This happened to me today...

backup:/mnt # rsync arm scponly at gtoal.com:arm
Password:
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(434)



Aug  9 22:06:14 backup scponly[31645]: option e is not permitted for
use with /usr/bin/rsync (arg was rver)(username: scponly(1014),
IP/port: 192.168.254.252 4419 22))
Aug  9 22:06:14 backup scponly[31645]: requested command
(/usr/bin/rsync --server . arm) tried to use disallowed argument
(username: scponly(1014), IP/port: 192.168.254.252 4419 22))


So I googled for the problem and found this in the archives...

-----------------------------------------------------------------------------------
From: joe at sublimation.org (wby oblyr)
Date: Mon Feb  6 14:51:05 2006
Subject: [scponly] Problems with rsync and ver 4.6

Hi Dhiresh,

Thanks for the bug report, this relates to the new getopt processing
feature added within the last couple months.
I will be addressing this shortly.

Basically, the getopt processor thinks that --server is the same as -s
-e -r -v, and since -e is a disallowed
rsync option, scponly is disallowing the argument.

I'll be working on a fix shortly.

joe
------------------------------------------------------------------------------------


I have version 4.6 installed too.  Did the fix ever materialise?  The
wiki only points to the Jan 2006 release.

This appears to be the errant code here:

                        else
                        {
                                tmpptr=av;
                                *tmpptr++;
                                while (*tmpptr!=NULL)
                                {
                                        if(strbeg(*tmpptr, cmdarg->badarg))
                                        {
                                                syslog(LOG_ERR, "%s is
not permitted for use with %s (%s))",

cmdarg->badarg, cmdarg->name, logstamp());
                                                return 1;
                                        }
                                        *tmpptr++;
                                }
                        }


And I think the fix would involve something like adding a check for
*tmpptr != '-' to this
line?

                                while (*tmpptr!=NULL)


thanks,


Graham



More information about the scponly mailing list