[illumos-Advocates] RTI for bug 323: Need fix for glob() resource exhaustion
Gordon Ross
gordon.w.ross at gmail.com
Wed Jun 8 06:59:55 PDT 2011
Oops, spoke too soon. Your mail_msg shows problems.
Do you have your build setup as described here?
http://wiki.openindiana.org/oi/Setting+up+the+recommended+build+environment
Meanwhile, I'll kick off a build of your changes and
see how it goes...
On Wed, Jun 8, 2011 at 9:38 AM, Gordon Ross <gordon.w.ross at gmail.com> wrote:
> I approve.
>
> On Tue, Jun 7, 2011 at 11:24 PM, Gary Mills <mills at cc.umanitoba.ca> wrote:
>> I'm attaching the `hg export' output and mail_msg from a nightly run
>> with lint, as well as a tar file of my test program. This is for the
>> FTP server portion of the bug report only.
>>
>> Here's outgoing:
>>
>> $ hg outgoing -v
>> running ssh anonhg at hg.illumos.org "hg -R illumos-gate serve --stdio"
>> remote: Not trusting file /export/illumos/hgrepos/illumos-gate/.hg/hgrc from untrusted user hg, group hg
>> comparing with ssh://anonhg@hg.illumos.org/illumos-gate
>> searching for changes
>>
>> changeset: 13384:72d00dd92134
>> tag: tip
>> user: Gary Mills <mills at cc.umanitoba.ca>
>> date: Tue Jun 07 21:38:05 2011 -0500
>>
>> description:
>> 323 Need fix for glob() resource exhaustion
>> Reviewed by: Garrett D'Amore
>> Reviewed by: Dan McDonald
>>
>> modified:
>> usr/src/cmd/cmd-inet/usr.sbin/in.ftpd/glob.c
>>
>> remote: Not trusting file /export/illumos/hgrepos/illumos-gate/.hg/hgrc from untrusted user hg, group hg
>>
>> And pbchk. Note that the original file contained hundreds of style
>> violations. I didn't have the nerve to fix them, but I do recommend
>> that the entire FTP server product be replaced with something more
>> modern and more maintainable:
>>
>> $ hg pbchk | pg
>> remote: Not trusting file /export/illumos/hgrepos/illumos-gate/.hg/hgrc from untrusted user hg, group hg
>> remote: Not trusting file /export/illumos/hgrepos/illumos-gate/.hg/hgrc from untrusted user hg, group hg
>> Copyright check:
>>
>> C style check:
>> usr/src/cmd/cmd-inet/usr.sbin/in.ftpd/glob.c: 7: line > 80 characters
>> usr/src/cmd/cmd-inet/usr.sbin/in.ftpd/glob.c: 7: space or tab at end of line
>> usr/src/cmd/cmd-inet/usr.sbin/in.ftpd/glob.c: 7: improper first line of block comment
>> usr/src/cmd/cmd-inet/usr.sbin/in.ftpd/glob.c: 7: missing blank after open comment
>> ...
>> usr/src/cmd/cmd-inet/usr.sbin/in.ftpd/glob.c: 693: indent by spaces instead of tabs
>> usr/src/cmd/cmd-inet/usr.sbin/in.ftpd/glob.c: 693: non-continuation indented 4 spaces
>>
>> Header format check:
>>
>> Java style check:
>>
>> Mapfile comment check:
>>
>> File permission check:
>>
>> Keywords check:
>>
>> Comments check:
>>
>> Checking for new tags:
>>
>> Checking for multiple heads (or branches):
>>
>> Checking for branch changes:
>>
>> Checking for uncommitted changes:
>>
>> Checking for merges:
>>
>> Most of my testing was done under Solaris 11 Express with my test
>> program and the modified glob.c. I also tested the complete FTP
>> server under oi_148b after I built it on that release.
>>
>> Here's a demo of the DOS with no changes to glob.c:
>>
>> $ ./tglob {..,..,..}/*/{..,..,..}/*/{..,..,..}/*/{..,..,..}/*/{..,..,..}/*/{..,..,..}/*/{..,..,..}/*/{..,..,..}/*/{..,..,..}/*/{..,..,..}/*/{..,..,..}/*cx
>> /* Keeps running */
>>
>> $ prstat
>> PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/NLWP
>> 18110 mills 1864K 1220K cpu1 20 0 0:01:29 25% tglob/1
>> 1254 mills 1713M 1457M sleep 59 0 171:14:27 0.3% Xorg/3
>> 27681 mills 704M 439M sleep 59 0 12:46:06 0.2% firefox-bin/10
>> 1083 root 21M 13M sleep 59 0 14:54:52 0.1% webserver/15
>>
>> Once limits were added, it behaved like this:
>>
>> $ ./tglob '{..,..,..}/*/{..,..,..}/*/{..,..,..}/*/{..,..,..}/*/{..,..,..}/*/{..,..,..}/*/{..,..,..}/*/{..,..,..}/*/{..,..,..}/*/{..,..,..}/*/{..,..,..}/*'
>> Debug: expr={..,..,..}/*/{..,..,..}/*/{..,..,..}/*/{..,..,..}/*/{..,..,..}/*/{..,..,..}/*/{..,..,..}/*/{..,..,..}/*/{..,..,..}/*/{..,..,..}/*/{..,..,..}/*
>> Error in server: Out of memory
>> $ ./tglob {..,..,..}/*/{..,..,..}/*/{..,..,..}/*/{..,..,..}/*/{..,..,..}/*/{..,..,..}/*/{..,..,..}/*/{..,..,..}/*/{..,..,..}/*/{..,..,..}/*/{..,..,..}/*cx
>> Debug: expr={..,..,..}/*/{..,..,..}/*/{..,..,..}/*/{..,..,..}/*/{..,..,..}/*/{..,..,..}/*/{..,..,..}/*/{..,..,..}/*/{..,..,..}/*/{..,..,..}/*/{..,..,..}/*cx
>> Error: Arguments too long
>>
>> The entire FTP server now behaves this way:
>>
>> ftp> mls {..,..,..}/*/{..,..,..}/*/{..,..,..}/*/{..,..,..}/*/{..,..,..}/*/{..,..,..}/*/{..,..,..}/*/{..,..,..}/*/{..,..,..}/*/{..,..,..}/*/{..,..,..}/*cx lfile3output to local-file: lfile3? y
>> 200 PORT command successful.
>> 550 Arguments too long
>> ftp> quit
>>
>> --
>> -Gary Mills- -Unix Group- -Computer and Network Services-
>>
>> _______________________________________________
>> Advocates mailing list
>> Advocates at lists.illumos.org
>> http://lists.illumos.org/m/listinfo/advocates
>>
>>
>
More information about the Advocates
mailing list