oweals/busybox.git
19 years agoHiroshi found another bug. Currently sed's $ triggers at end of every file,
Rob Landley [Thu, 25 Nov 2004 07:21:47 +0000 (07:21 -0000)]
Hiroshi found another bug.  Currently sed's $ triggers at end of every file,
and with multiple files SuSv3 says it should only trigger at the end of the
LAST file.

The trivial fix I tried first broke if the last file is empty.  Fixing this
properly required restructuring things to create a file list (actually a
FILE * list), and then processing it all in one go.  (There's probably a
smaller way to do this, merging with append_list perhaps.  But let's get
the behavior correct first.)

Note that editing files in place (-i) needs the _old_ behavior, with $
triggering at the end of each file.

Here's a test of all the things this patch fixed.  gnu and busybox seds produce
the same results with this patch, and different without it.

echo -n -e "1one\n1two\n1three" > ../test1
echo -n > ../test2
echo -e "3one\n3two\n3three" > ../test3
sed -n "$ p" ../test1 ../test2 ../test3
sed -n "$ p" ../test1 ../test2
sed -i -n "$ p" ../test1 ../test2 ../test3

20 years agoDon't document compiler warnings. _FIX_ compiler warnings.
Rob Landley [Tue, 16 Nov 2004 12:07:04 +0000 (12:07 -0000)]
Don't document compiler warnings.  _FIX_ compiler warnings.

20 years agoCorrect the install-hardlinks target the same way as was already done
Peter Kjellerstedt [Tue, 2 Nov 2004 09:05:22 +0000 (09:05 -0000)]
Correct the install-hardlinks target the same way as was already done
for the install target.

20 years agoAlright, I guess I should be in this too...
Rob Landley [Sat, 30 Oct 2004 07:04:10 +0000 (07:04 -0000)]
Alright, I guess I should be in this too...

20 years agoHiroshi Ito found some bugs. The 'c' command (cut and paste) was hardwired
Rob Landley [Sat, 30 Oct 2004 06:54:19 +0000 (06:54 -0000)]
Hiroshi Ito found some bugs.  The 'c' command (cut and paste) was hardwired
to not put a newline at the end (which was backwards, it should have been
hardwired _to_ put a newline at the end, whether or not the input line
ended with a newline).  Test case for that:

echo | sed -e '$ctest'

And then this would segfault:

echo | sed -e 'g'

Because pattern_space got freed but the dead pointer was only overwritten
in an if statement that didn't trigger if the hold space was empty.  Oops.

While debugging it, I found out that the hold space is persistent between
multiple input files, so I promoted it to a global and added it to the
memory cleanup.  The relevant test case (to compare with That Other Sed) is:

echo -n woo > woo
sed -e h -e g woo
echo "fish" | sed -e '/woo/h' -e "izap" -e 's/woo/thingy/' -e '/fish/g' woo -

And somebody gratuitously stuck in a c99 int8_t type for something that's just
a flag, so I grouped the darn ints.

20 years ago1.00 is stable
Eric Andersen [Wed, 27 Oct 2004 02:39:46 +0000 (02:39 -0000)]
1.00 is stable

20 years agomention scratchbox and openembedded
Eric Andersen [Mon, 18 Oct 2004 06:31:18 +0000 (06:31 -0000)]
mention scratchbox and openembedded

20 years agoegor duda writes:
Eric Andersen [Wed, 13 Oct 2004 17:45:57 +0000 (17:45 -0000)]
egor duda writes:

egor duda wrote:
>Ok, here's an updated patch.
>'make check' should work now, and one make creates Makefile in build
>directory, so one can run 'make' in build directory after that.

ahem. It looks like i'm slightly late with it but... Here's a little
addition to make 'make O=/some/where PREFIX=/some/where/else install'
work. Sorry for delay :(

egor

20 years agoprepare for release 1_00
Eric Andersen [Wed, 13 Oct 2004 09:42:10 +0000 (09:42 -0000)]
prepare for release

20 years agoreturn failure when nslookup fails
Eric Andersen [Wed, 13 Oct 2004 07:25:01 +0000 (07:25 -0000)]
return failure when nslookup fails

20 years agoSimon Poole writes:
Eric Andersen [Wed, 13 Oct 2004 07:18:05 +0000 (07:18 -0000)]
Simon Poole writes:

Erik,

Attached is a patch for the udhcpc sample scripts, to correct the order in
which routers are applied if the DHCP server provides more than one (as per
section 3.5 of RFC2132).

Apologies for not being on the mailing list and thanks for your continued
efforts.

Simon.

20 years agoMake certain clients of bb_make_directory default to honoring
Eric Andersen [Wed, 13 Oct 2004 06:25:52 +0000 (06:25 -0000)]
Make certain clients of bb_make_directory default to honoring
the user's umask

20 years agoPatch from David Daney:
Eric Andersen [Mon, 11 Oct 2004 20:52:16 +0000 (20:52 -0000)]
Patch from David Daney:

It seems that date  -s MMDDHHMMYYYY.ss

will ignore the .ss part.  This patch tries to fix the problem.

David Daney.

20 years agooops
Eric Andersen [Fri, 8 Oct 2004 11:11:02 +0000 (11:11 -0000)]
oops

20 years agounmerged fix
Eric Andersen [Fri, 8 Oct 2004 10:54:20 +0000 (10:54 -0000)]
unmerged fix

20 years agoBump version
Eric Andersen [Fri, 8 Oct 2004 10:52:33 +0000 (10:52 -0000)]
Bump version

20 years agoFix the supported architectures section
Eric Andersen [Fri, 8 Oct 2004 10:52:08 +0000 (10:52 -0000)]
Fix the supported architectures section

20 years agoAdd an initial FAQ
Eric Andersen [Fri, 8 Oct 2004 10:50:08 +0000 (10:50 -0000)]
Add an initial FAQ

20 years agoFix CONFIG_ASH_MATH_SUPPORT_64 so it actually works
Eric Andersen [Fri, 8 Oct 2004 09:43:34 +0000 (09:43 -0000)]
Fix CONFIG_ASH_MATH_SUPPORT_64 so it actually works

20 years agoPatch from Claus Klein to increase, and make more apparent
Eric Andersen [Fri, 8 Oct 2004 08:57:35 +0000 (08:57 -0000)]
Patch from Claus Klein to increase, and make more apparent
the hard coded limit on the number of mounts

20 years agoWade Berrier writes:
Eric Andersen [Fri, 8 Oct 2004 08:49:26 +0000 (08:49 -0000)]
Wade Berrier writes:

Hello,

Here's a patch for a first attempt at static leases for udhcpd.
Included in the tarball are 2 files (static_leases.c, static_leases.h)
and a patch against the latest cvs.

In the config file you can configure static leases with the following
format:

static_lease 00:60:08:11:CE:4E 192.168.0.54
static_lease 00:60:08:11:CE:3E 192.168.0.44

Comments/suggestions/improvements are welcome.

Wade

20 years agoPatch from Denis Vlasenko to fix a problem where
Eric Andersen [Fri, 8 Oct 2004 08:27:40 +0000 (08:27 -0000)]
Patch from Denis Vlasenko to fix a problem where
wget http://1.2.3.4/abc/ loses last '/'

20 years agoHiroshi Ito writes:
Eric Andersen [Fri, 8 Oct 2004 08:21:54 +0000 (08:21 -0000)]
Hiroshi Ito writes:

Hello, all.

Busybox init does not handle removed inittab entry correctly.

# I'm sorry about my poor english, but you can find
# what I would like to say from patch, isn't it?

even if you apply this path,
when yoy try to change a command line option in inittab,
you have to do following steps.
1. remove old line from initrd
2. send HUP signal to init
3. kill old proces which is invoked from init.
4. append new line to inittab
5. send HUP signal to init, again

patch is against current CVS + last patch witch I send it last.

20 years agoHiroshi Ito writes:
Eric Andersen [Fri, 8 Oct 2004 08:17:39 +0000 (08:17 -0000)]
Hiroshi Ito writes:

"kill -HUP 1" reloads inittab, and when I append one line to inittab
and send HUP signal two times, It will starts 2 process.

patch against current CVS is attached.

20 years agoHiroshi Ito writes:
Eric Andersen [Fri, 8 Oct 2004 08:14:58 +0000 (08:14 -0000)]
Hiroshi Ito writes:

ash
   "unset OLDPWD; cd -"  causes segmentation fault.
    ( OLDPWD is not set when sh is invoked from getty. )

patch against current CVS is attached.

20 years agoHiroshi Ito writes:
Eric Andersen [Fri, 8 Oct 2004 08:10:57 +0000 (08:10 -0000)]
Hiroshi Ito writes:

    Hello

    I'm using busy box on mipsel machine.

    "grep -f file" will cause segmentation fault.

Vladimir N. Oleynik writes:

Hiroshi,

Thank for bug report, but your patch is full broken.
Worked patch attached.
(really changes is zero initialize, and indent correcting).

--w
vodz

20 years agoTito writes:
Eric Andersen [Fri, 8 Oct 2004 08:07:40 +0000 (08:07 -0000)]
Tito writes:

Hi to all,
This patch contains just some fixes for some misleading
comments in my_getpwuid.c and my_getug.c.
The code is untouched so this patch will not
cause troubles.

Please apply.

Thanks in advance and Ciao,
Tito

20 years agolast_patch139.gz from Vladimir N. Oleynik:
Eric Andersen [Fri, 8 Oct 2004 08:03:29 +0000 (08:03 -0000)]
last_patch139.gz from Vladimir N. Oleynik:

>I also don't mean to disagree about leaving 30x status codes until after
>1.0.  In fact, although redirecting http://host/dir to http://host/dir/
>with a 301 is common practice (e.g. Apache, IIS), AFAIK it isn't
>actually required (or mentioned) by the HTTP specs.

Ok.
Attached patch have 302 and 408 implemented features.

--w
vodz

20 years agoAs noticed by egor duda, current_menu is declared as 'extern struct menu
Eric Andersen [Fri, 8 Oct 2004 07:58:30 +0000 (07:58 -0000)]
As noticed by egor duda, current_menu is declared as 'extern struct menu
*current_menu;' in scripts/config/lkc.h line 63, and this conflicts with
static definition in mconf.c.

20 years agoegor duda writes:
Eric Andersen [Fri, 8 Oct 2004 07:46:08 +0000 (07:46 -0000)]
egor duda writes:

Hi!

I've created a patch to busybox' build system to allow building it in
separate tree in a manner similar to kbuild from kernel version 2.6.

That is, one runs command like
'make O=/build/some/where/for/specific/target/and/options'
and everything is built in this exact directory, provided that it exists.

I understand that applyingc such invasive changes during 'release
candidates' stage of development is at best unwise. So, i'm currently
asking for comments about this patch, starting from whether such thing
is needed at all to whether it coded properly.

'make check' should work now, and one make creates Makefile in build
directory, so one can run 'make' in build directory after that.

One possible caveat is that if we build in some directory other than
source one, the source directory should be 'distclean'ed first.

egor

20 years agoPatch from Michael Tokarev:
Eric Andersen [Fri, 8 Oct 2004 07:21:58 +0000 (07:21 -0000)]
Patch from Michael Tokarev:

Scenario:

  touch x -- creates plain file name `x'
  mkdir x -- exits successefully

libbb/make_directory.c, bb_make_directory(), contains
the following code:

        if (mkdir(path, 0777) < 0) {
            /* If we failed for any other reason than the directory
             * already exists, output a diagnostic and return -1.*/
            if (errno != EEXIST) {
                fail_msg = "create";
                umask(mask);
                break;
            }
            /* Since the directory exists, don't attempt to change
             * permissions if it was the full target.  Note that
             * this is not an error conditon. */
            if (!c) {
                umask(mask);
                return 0;
            }
        }

The assumption that EEXIST error is due to that the *directory*
already exists is wrong: any file type with that name will cause
this error to be returned.  Proper way IMHO will be is to stat()
the path and check whenever this is really a directory.  Below
(attached) is a patch to fix this issue.

20 years agoMake it more apparent that archive creation is not supported
Eric Andersen [Thu, 7 Oct 2004 00:35:59 +0000 (00:35 -0000)]
Make it more apparent that archive creation is not supported

20 years agoPatch from William Barsse to fix a segfault when multiple files are specified.
Glenn L McGrath [Thu, 30 Sep 2004 00:24:21 +0000 (00:24 -0000)]
Patch from William Barsse to fix a segfault when multiple files are specified.

20 years agoPatch from Dmitry Zakharov to fix a bug triggered by freeswan's scripts.
Glenn L McGrath [Fri, 24 Sep 2004 09:24:27 +0000 (09:24 -0000)]
Patch from Dmitry Zakharov to fix a bug triggered by freeswan's scripts.

20 years agoPatch from Egor Duda
Glenn L McGrath [Fri, 24 Sep 2004 09:18:55 +0000 (09:18 -0000)]
Patch from Egor Duda
Attached patch prevents modprobe from trying to call 'insmod (null)'
whenever nonexistent module is either passed to modprobe via command
line or mentioned in modules.dep

this replaces cryptic error
sh: Syntax error: word unexpected (expecting ")")
with
modprobe: module some-module not found.

egor.

20 years agoFix a typo
Glenn L McGrath [Fri, 24 Sep 2004 09:09:44 +0000 (09:09 -0000)]
Fix a typo

20 years agoRemove this error message at Vodz request, it was misleading.
Glenn L McGrath [Fri, 24 Sep 2004 02:36:44 +0000 (02:36 -0000)]
Remove this error message at Vodz request, it was misleading.

20 years agoPatch from David Daney to make the -i option work with -l.
Glenn L McGrath [Fri, 24 Sep 2004 02:04:13 +0000 (02:04 -0000)]
Patch from David Daney to make the -i option work with -l.

20 years agoA bit of extra explanation regarding STANDALONE
Eric Andersen [Fri, 24 Sep 2004 01:25:39 +0000 (01:25 -0000)]
A bit of extra explanation regarding STANDALONE

20 years agoAdd some notes on how to make telnetd actually work
Eric Andersen [Thu, 23 Sep 2004 20:08:46 +0000 (20:08 -0000)]
Add some notes on how to make telnetd actually work

20 years agoAdd a missing brace, patch by Hideki IWAMOTO
Glenn L McGrath [Wed, 15 Sep 2004 03:24:32 +0000 (03:24 -0000)]
Add a missing brace, patch by Hideki IWAMOTO

20 years agoTito writes,
Glenn L McGrath [Wed, 15 Sep 2004 03:04:08 +0000 (03:04 -0000)]
Tito writes,
"This patch fixes all the bugs in id previously spotted by vodz and me.
The binary size increased a bit,  but now it should work as expected."

20 years agoOnly write to shadow file is shadow passwords are enabled. Patch by magicfox modified...
Glenn L McGrath [Wed, 15 Sep 2004 02:39:09 +0000 (02:39 -0000)]
Only write to shadow file is shadow passwords are enabled. Patch by magicfox modified by myself to retain check for shadow file access.

20 years agoPatch by Felipe Kellermann, use the common escape handling function and remove some...
Glenn L McGrath [Wed, 15 Sep 2004 02:05:23 +0000 (02:05 -0000)]
Patch by Felipe Kellermann, use the common escape handling function and remove some unused code.

20 years agoremove a cut/paste mistake, i better get some sleep.
Glenn L McGrath [Tue, 14 Sep 2004 19:14:00 +0000 (19:14 -0000)]
remove a cut/paste mistake, i better get some sleep.

20 years agoApply patch from Felipe Kellermann to simlify logic of sort functions.
Glenn L McGrath [Tue, 14 Sep 2004 18:56:52 +0000 (18:56 -0000)]
Apply patch from Felipe Kellermann to simlify logic of sort functions.
I reversed the result of the sort functions to make the big numbers go to the top.

20 years agoPatch by Felipe Kellermann, fix a bug introduced in the last patch by adding a condit...
Glenn L McGrath [Tue, 14 Sep 2004 18:12:13 +0000 (18:12 -0000)]
Patch by Felipe Kellermann, fix a bug introduced in the last patch by adding a condition around the remote logging, also adds some comments.

20 years agoPatch from Felipe Kellermann, remove some unnecessary dups, i declared a few extra...
Glenn L McGrath [Tue, 14 Sep 2004 17:24:59 +0000 (17:24 -0000)]
Patch from Felipe Kellermann, remove some unnecessary dups, i declared a few extra const's also.

20 years agoPatch from Felipe Kellermann, adds missing applet usage options, removes usage
Glenn L McGrath [Tue, 14 Sep 2004 16:23:56 +0000 (16:23 -0000)]
Patch from Felipe Kellermann, adds missing applet usage options, removes usage
for options that are currently not implemented and fixes typos.

20 years agoPatch from tito to add argument checking.
Glenn L McGrath [Tue, 14 Sep 2004 16:08:02 +0000 (16:08 -0000)]
Patch from tito to add argument checking.

20 years agoI have to assume both Avaks and LSILogic are deliberatly ignoring me.
Glenn L McGrath [Tue, 14 Sep 2004 13:59:44 +0000 (13:59 -0000)]
I have to assume both Avaks and LSILogic are deliberatly ignoring me.

20 years agoFixup URL
Eric Andersen [Wed, 8 Sep 2004 20:13:05 +0000 (20:13 -0000)]
Fixup URL

20 years agoFelipe Kellermann writes:
Eric Andersen [Wed, 8 Sep 2004 10:56:06 +0000 (10:56 -0000)]
Felipe Kellermann writes:

The Togg's sysklogd patch to use sendto() on remote logging is formatting
strangely (using `<' and '>' surrounding the `msg' string message).  This
is OK, but this is not the standard way of formatting this message.

So this patch does the following:

o Fix the formatting to the standard way.
o Uses `MAXLINE' when needed;
o Don't loop sending messages without a "sleeping time",
  I'm now doing `now = 1', `now <<= 1';
o Don't die on `init_RemoteLog' when starting up (feature!)
  We're now trying to connect every time we have an invalid fd;
o Removes one static uneeded variable.
o Removes two automatic uneeded variables.

20 years agoPatrick Huesmann noticed BusyBox would not link when
Eric Andersen [Wed, 8 Sep 2004 10:01:07 +0000 (10:01 -0000)]
Patrick Huesmann noticed BusyBox would not link when
CONFIG_FEATURE_COMMAND_EDITING was defined *and*
CONFIG_FEATURE_COMMAND_TAB_COMPLETION was undefined.

Vladimir N. Oleynik writes:

Its declare always, also if CONFIG_FEATURE_COMMAND_TAB_COMPLETION
undefined.
Patch to CVS version attached.

--w
vodz

20 years agoJonas Holmberg from axis dot com writes:
Eric Andersen [Thu, 2 Sep 2004 23:13:10 +0000 (23:13 -0000)]
Jonas Holmberg from axis dot com writes:

This patch makes msh handle variable expansion within backticks more
correctly.

Current behaviour (wrong):
--------------------------

BusyBox v1.00-rc3 (2004.08.26-11:51+0000) Built-in shell (msh)
Enter 'help' for a list of built-in commands.

$ A='`echo hello`'
$ echo $A
`echo hello`
$ echo `echo $A`
hello
$

New behaviour (correct):
------------------------

BusyBox v1.00-rc3 (2004.08.26-11:51+0000) Built-in shell (msh)
Enter 'help' for a list of built-in commands.

$ A='`echo hello`'
$ echo $A
`echo hello`
$ echo `echo $A`
`echo hello`
$

The current behaviour (wrong according to standards) was actually my
fault. msh handles backticks by executing a subshell (which makes it
work on MMU-less systems). Executing a subshell makes it hard to only
expand variables once in the parent. Therefore I export all variables
that will be expanded within the backticks and let the subshell handle
the expansion instead.

The bug was found while searching for security leaks in CGI-scripts.
Current behaviour of msh makes it easy to expand backticks by mistake
in $QUERY_STRING. I recommend appling the patch before release of bb
1.00.

/Jonas

20 years agoNo longer needed
Eric Andersen [Thu, 2 Sep 2004 23:11:53 +0000 (23:11 -0000)]
No longer needed

20 years agoBased on patches from Mike Frysinger, add insmod support for
Eric Andersen [Thu, 2 Sep 2004 23:03:25 +0000 (23:03 -0000)]
Based on patches from Mike Frysinger, add insmod support for
sparc and ia64 (itanium).

Also, reorganize the insmod architecture support code to be
alphasorted and less messy.

Update the readme to list current insmod arch support.

20 years agoTito writes:
Eric Andersen [Thu, 2 Sep 2004 22:22:17 +0000 (22:22 -0000)]
Tito writes:

The second patch contains:
1) a size optimization for adduser.c
2) removes a warning about an unused variable in syslogd.c if CONFIG_FEATURE_REMOTE_LOG is not set
3)cosmetic fixes for addgroup_full_usage and adduser_full_usage

Ciao,
Tito

20 years agoTito writes:
Eric Andersen [Thu, 2 Sep 2004 22:21:41 +0000 (22:21 -0000)]
Tito writes:

Hi Erik,
Hi to all,
This is part five of the my_get*id story.
I've tweaked a bit this two functions to make them more flexible,
but this changes will not affect existing code.
Now they work so:
1) my_getpwuid( char *user, uid_t uid, int bufsize)

   if bufsize is > 0 char *user cannot be set to NULL
                     on success username is written on static allocated buffer
                     on failure uid as string is written to buffer and NULL is returned
   if bufsize is = 0 char *user can be set to NULL
                     on success username is returned
                     on failure NULL is returned
   if bufsize is < 0 char *user can be set to NULL
                     on success username is returned
                     on failure an error message is printed and the program exits

  2) 1) my_getgrgid( char *group, uid_t uid, int bufsize)

   if bufsize is > 0 char *group cannot be set to NULL
                     on success groupname is written on static allocated buffer
                     on failure gid as string is written to buffer and NULL is returned
   if bufsize is = 0 char *group can be set to NULL
                     on success groupname is returned
                     on failure NULL is returned
   if bufsize is < 0 char *group can be set to nULL
                     on success groupname is returned
                     on failure an error message is printed and the program exits

This changes were needed mainly for my new id applet.
It is somewhat bigger then the previous but matches the behaviour of GNU id
and is capable to handle usernames of whatever length.
BTW: at a first look it seems to me that it will integrate well (with just a few changes)
with the pending patch  in patches/id_groups_alias.patch.
The increase in size is balanced by the removal of my_getpwnamegid.c
from libbb as this was used only in previous id applet and by size optimizations
made possible in whoami.c and in passwd.c.
I know that we are in feature freeze but I think that i've tested it enough
(at least I hope so.......).

20 years agoFixup some warnings
Eric Andersen [Sat, 28 Aug 2004 00:43:07 +0000 (00:43 -0000)]
Fixup some warnings

20 years agoQuiet a few warnings
Eric Andersen [Fri, 27 Aug 2004 19:55:28 +0000 (19:55 -0000)]
Quiet a few warnings

20 years agoTogg writes:
Eric Andersen [Thu, 26 Aug 2004 23:15:29 +0000 (23:15 -0000)]
Togg writes:

Syslogd wont start if remote-logging is enabled and the connection to the
remote-log server is not possible on syslogd startup.

I found a patch somewhere which works like a charm. It uses sendto() which
seems more reliable for this issue.

Please see attached patch. Many people will be more happy with this included
I think.

Regards,
Togg

20 years agoImprove the setuid situation a bit, and make it more apparent
Eric Andersen [Thu, 26 Aug 2004 23:13:00 +0000 (23:13 -0000)]
Improve the setuid situation a bit, and make it more apparent
when people really ought to make busybox setuid root.
 -Erik

20 years agoThe login applet should always be setuid root
Eric Andersen [Thu, 26 Aug 2004 23:01:34 +0000 (23:01 -0000)]
The login applet should always be setuid root

20 years agoTito writes:
Eric Andersen [Thu, 26 Aug 2004 22:36:02 +0000 (22:36 -0000)]
Tito writes:

Hi,
I've fixed also the issue of whoami cutting down usernames.
This time I cannot send a diff because i don't know if my previous patches will be applied
or not, so I send in the whole file.
The changes I've made don't affect size but ensure that usernames of whatever lenght
are correctly displayed.
root@localhost:/dev/pts/3:/root/Desktop/busybox/coreutils# size whoami_orig.o
   text    data     bss     dec     hex filename
    102       0       0     102      66 whoami_orig.o
root@localhost:/dev/pts/3:/root/Desktop/busybox/coreutils# size whoami.o
   text    data     bss     dec     hex filename
     93       0       0      93      5d whoami.o

This should be applied even if the other patches aren't as this matches the behaviour of the  GNU whoami.

Thanks in advance,
Ciao,
Tito

20 years agoSave a line or two
Eric Andersen [Thu, 26 Aug 2004 22:26:26 +0000 (22:26 -0000)]
Save a line or two

20 years agoVladimir N. Oleynik writes:
Eric Andersen [Thu, 26 Aug 2004 22:22:50 +0000 (22:22 -0000)]
Vladimir N. Oleynik writes:

Ming-Ching,

>>No. Here there are no mistakes.
>>You using POST metod.
>>For get data you should read from stdin CONTENT_LENGTH bytes.

>Hower as I posted a little while ago, there is indeed a bug
>in POST method if the CONTENT_LENGTH is bigger
>than sizeof(wbuf[128]). So if your CGI script is expecting to
>read the full CONTENT_LENGTH, it might block forever,
>because it will only transfer sizeof(wbuf) to the CGI.

Ok, Ok. I should find time to understand with a problem.
Try attached patch.

--w
vodz

20 years agoTito writes:
Eric Andersen [Thu, 26 Aug 2004 22:18:59 +0000 (22:18 -0000)]
Tito writes:

Hi,
I've spent the half night staring at the devilish  my_getpwuid and my_getgrgid functions
trying to find out a way to avoid actual and future potential buffer overflow problems
without breaking existing code.
Finally I've  found a not intrusive way to do this that surely doesn't break existing code
and fixes a couple of problems too.
The attached patch:
1) changes the behaviour of my_getpwuid and my_getgrgid to avoid potetntial buffer overflows
2) fixes all occurences of this function calls in tar.c , id.c , ls.c, whoami.c, logger.c, libbb.h.
3) The behaviour of tar, ls and  logger is unchanged.
4) The behavior of ps with somewhat longer usernames messing up output is fixed.
5) The only bigger change was the increasing of size of the buffers in id.c to avoid
     false negatives (unknown user: xxxxxx) with usernames longer than 8 chars.
     The value i used ( 32 chars ) was taken from the tar header ( see gname and uname).
     Maybe this buffers can be reduced a bit  ( to 16 or whatever ), this is up to you.
6) The increase of size of the binary is not so dramatic:
     size busybox
       text    data     bss     dec     hex filename
     239568    2300   36816  278684   4409c busybox
    size busybox_fixed
       text    data     bss     dec     hex filename
     239616    2300   36816  278732   440cc busybox
7) The behaviour of whoami changed:
    actually it  prints out an username cut down to the size of the buffer.
    This could be fixed by increasing the size of the buffer as in id.c or
    avoid the use of my_getpwuid and use getpwuid directly instead.
    Maybe this colud be also remain unchanged......

Please apply if you think it is ok to do so.
The diff applies on today's cvs tarball (2004-08-25).
Thanks in advance,
Ciao,
Tito

20 years agoFelipe Kellermann writes:
Eric Andersen [Thu, 26 Aug 2004 21:45:21 +0000 (21:45 -0000)]
Felipe Kellermann writes:

Unfortunatelly I've not followed the last two or three weeks commits (new
semester started and so now I rarely have time to fix my personal bridge)
but tonight I synched my tree and immediately noticed a rather nasty bug!

[Using libbb/interface.c:1.24]
# grep eth0 /proc/net/dev | xargs
eth0:311708397 237346 1670 0 1789 1670 0 0 22580308 120297 0 0 0 102 0 0

# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:20:AF:7C:EA:B7
          inet addr:10.0.0.1  Bcast:10.0.0.127  Mask:255.255.255.128
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:5 Base address:0x320

All values `ifconfig' is showing are `zeroed' -- I quickly looked at the
last commits I missed and noticed that there were a commit relating to
ifconfig, libbb/interface.c:1.23->1.24 (PatchSet 4338).

I've reversed the patch and now everything is working again.  I compared
the get_name's return values from the 1.23 and 1.24 and quickly noticed
that the new revision is leaving `p' right on the sep while the rev 1.23
was leaving it right on the starting of the values...

1-line, 1/3-minute patch attached  :-)

20 years agoPatch from Manousaridis Angelos to cleanup stale file descriptors, it was preventing...
Glenn L McGrath [Wed, 25 Aug 2004 02:02:19 +0000 (02:02 -0000)]
Patch from Manousaridis Angelos to cleanup stale file descriptors, it was preventing unmounting an initial filesystem.

20 years agoPatch from Rodney Radford adding x86_64 support.
Eric Andersen [Thu, 19 Aug 2004 19:17:30 +0000 (19:17 -0000)]
Patch from Rodney Radford adding x86_64 support.

20 years agoregularly update the status line display
Eric Andersen [Thu, 19 Aug 2004 19:15:06 +0000 (19:15 -0000)]
regularly update the status line display
 -Erik

20 years agoPatch from Mike Castle to cleanup some modutils issues, in
Eric Andersen [Thu, 19 Aug 2004 18:30:31 +0000 (18:30 -0000)]
Patch from Mike Castle to cleanup some modutils issues, in
particular making alias support work better.

20 years agoPatch from Tito adding support for '-q'
Eric Andersen [Thu, 19 Aug 2004 18:26:26 +0000 (18:26 -0000)]
Patch from Tito adding support for '-q'

20 years agoPatch from Tito documenting the '-q' option
Eric Andersen [Thu, 19 Aug 2004 18:25:02 +0000 (18:25 -0000)]
Patch from Tito documenting the '-q' option

20 years agoPatch from Vladimir N. Oleynik:
Eric Andersen [Thu, 19 Aug 2004 18:22:13 +0000 (18:22 -0000)]
Patch from Vladimir N. Oleynik:

On Wed Aug 18, 2004 at 06:52:57PM +0800, Matt Johnston wrote:
> I've come across some strange-seeming behaviour when running programs
> under Busybox (1.0.0-rc3) ash. If the child process sets stdin to be
> non-blocking and then exits, the parent ash will also exit. A quick strace
> shows that a subsequent read() from stdin returns EAGAIN (as would be
> expected):

Thanks!
Patch attached.

--w
vodz

20 years agoFixup 'dc' usage
Eric Andersen [Wed, 18 Aug 2004 17:57:16 +0000 (17:57 -0000)]
Fixup 'dc' usage

20 years agoPrepare for release 1_00_rc3
Eric Andersen [Mon, 16 Aug 2004 10:29:29 +0000 (10:29 -0000)]
Prepare for release

20 years agoBump version
Eric Andersen [Mon, 16 Aug 2004 10:23:33 +0000 (10:23 -0000)]
Bump version

20 years agoOnly pass modprobe module params with 2.6.x kernel support.
Eric Andersen [Mon, 16 Aug 2004 10:22:34 +0000 (10:22 -0000)]
Only pass modprobe module params with 2.6.x kernel support.
 -Erik

20 years agoDo not use vfork, as init is not vfork safe. Do not allow
Eric Andersen [Mon, 16 Aug 2004 09:29:42 +0000 (09:29 -0000)]
Do not use vfork, as init is not vfork safe.  Do not allow
askfirst when mmuless.

20 years agoBertrand Baudet writes:
Eric Andersen [Mon, 16 Aug 2004 09:07:39 +0000 (09:07 -0000)]
Bertrand Baudet writes:

Looks like the -D and -H options of the adduser applet aren't handle
properly in BusyBox.

This patch fixes the masks definition for those options according to
there position in the optstring.

Patch against RC2 but should also apply cleanly against CVS.

Bertrand

20 years agoJoe.C writes:
Eric Andersen [Mon, 16 Aug 2004 08:38:34 +0000 (08:38 -0000)]
Joe.C writes:

 This bug is in busybox 1.0.0-rc2. When using lash exec
builtin with redirection, the opened file fd keep increasing.
For example, please try the following command with lash.

ls -al /proc/<lash pid>/fd
exec /bin/sh 2>/dev/null
ls -al /proc/<lash pid>/fd

  The last 'ls' command output will look like this. The fd
number 4 shouldn't exist.

lrwx------    1 501      100         64 Aug 13 13:56 4 -> /dev/pts/5
l-wx------    1 501      100         64 Aug 13 13:56 2 -> /dev/null
lrwx------    1 501      100         64 Aug 13 13:56 1 -> /dev/pts/5
lrwx------    1 501      100         64 Aug 13 13:56 0 -> /dev/pts/5
dr-xr-xr-x    3 501      100          0 Aug 13 13:56 ..
dr-x------    2 501      100          0 Aug 13 13:56 .

  This one-line patch fix this problem by setting CLOEXEC flag for
squirrel fd. Please apply.

Joe.C

20 years agoUse __kernel_old_dev_t for 2.6.x kernels
Eric Andersen [Mon, 16 Aug 2004 08:36:28 +0000 (08:36 -0000)]
Use __kernel_old_dev_t for 2.6.x kernels

20 years agoAurelien Jacobs writes:
Eric Andersen [Mon, 16 Aug 2004 08:29:44 +0000 (08:29 -0000)]
Aurelien Jacobs writes:

with a quick conversion you will see that 132608 == 0x20600
so noticed that the elif will never be matched !
Apparently there was already a try to modify this in CVS which
was reverted (it was plain wrong).

I don't know when __kernel_old_dev_t is needed, but with a 2.6.7
or a 2.6.8 this is __kernel_dev_t wich is needed.

I corrected this with the following patch but maybe older 2.6
still need __kernel_old_dev_t ?

I think this should be corrected before 1.0.

Thanks
Aurel

20 years agoChristian Ostheimer writes:
Eric Andersen [Sat, 14 Aug 2004 20:57:33 +0000 (20:57 -0000)]
Christian Ostheimer writes:

Hello,

function build_dep in modprobe.c assumes that dependencies of one module
have not more than 255 chars;
that is not sufficient in kernel 2.6.7 (alsa sound modules). - Below is
a diff that solves the problem for me.

With regards, Christian Ostheimer

20 years agoPatch from solar to fix problems with get_name()
Eric Andersen [Thu, 12 Aug 2004 16:52:00 +0000 (16:52 -0000)]
Patch from solar to fix problems with get_name()

20 years agoSet default command to list rather than get, its default behaviour now
Glenn L McGrath [Wed, 11 Aug 2004 08:10:58 +0000 (08:10 -0000)]
Set default command to list rather than get, its default behaviour now
coincides with upstream. Patch from debian diff.

20 years agoPatch from Mike Castle, dont print an empty line (patch modified by me to
Glenn L McGrath [Wed, 11 Aug 2004 05:56:30 +0000 (05:56 -0000)]
Patch from Mike Castle, dont print an empty line (patch modified by me to
change formatting).

20 years agoPatch from Tito to fix memory leak upon error.
Glenn L McGrath [Wed, 11 Aug 2004 03:50:30 +0000 (03:50 -0000)]
Patch from Tito to fix memory leak upon error.

20 years agoPatch from Bastian Blank to add 64 bit support to the test command.
Glenn L McGrath [Wed, 11 Aug 2004 02:45:47 +0000 (02:45 -0000)]
Patch from Bastian Blank to add 64 bit support to the test command.
Example of broken usage: ./busybox test 2147483648 -gt 2147483648

20 years agoPatch from Phil Blundellto improve substring match
Glenn L McGrath [Wed, 11 Aug 2004 02:32:18 +0000 (02:32 -0000)]
Patch from Phil Blundellto improve substring match

20 years agoWillian Barsse wrote
Glenn L McGrath [Wed, 11 Aug 2004 02:30:30 +0000 (02:30 -0000)]
Willian Barsse wrote
"There seems to be a slight problem with the "mod_strcmp" function in
modprobe.c, it scans for the first occurence of the module name in the
"mod_path" variable and expects it to be the last path element. ie
/lib/modules/2.4.22-debug/kernel/fs/vfat in my example. The comparison
will always fail if mod_path contains another substring matching the
module name."

Robert McQueen wrote
"Although William Barsse's patch fixed mod_strcmp for 2.4 kernels, there
was a remaining problem which prevented it from working for me. I've
just tracked it down - when you enable kernel 2.6 module support it
hard-wired the extension to .ko instead of checking at runtime like the
other places where 2.4 differs from 2.6. The attached patch fixes this
for me."

20 years agoPatch from Tito to fix warnings about redifined functionions barrier and likely.
Glenn L McGrath [Fri, 6 Aug 2004 01:49:04 +0000 (01:49 -0000)]
Patch from Tito to fix warnings about redifined functionions barrier and likely.

20 years agoPart of patch from William Barsse, fixes a problem with unescaped %.
Glenn L McGrath [Fri, 6 Aug 2004 00:58:53 +0000 (00:58 -0000)]
Part of patch from William Barsse, fixes a problem with unescaped %.

20 years agoMichael Leibow, MichaelLe at belkin.com writes:
Eric Andersen [Wed, 4 Aug 2004 19:19:10 +0000 (19:19 -0000)]
Michael Leibow, MichaelLe at belkin.com writes:

A question was posted a month ago by Mark Alamo to see if others had
problems with sourcing subscripts within msh.  We asked his firm to fix the
msh.c bug he described because we didn't have enough time to do it
ourselves.

When msh.c is executing a compound statement and there is a . command to
source another script file, msh.c will not execute the subscript until it's
completed executing the rest of the compound statement.

His example was this:

Echo "Start" ; . ./subA; echo "mid" ; . ./subB ; echo "end"

subA and subB execute AFTER end is printed in reverse order.  The same is
true if the sourced files are inside an if else fi, case esac, or any
compound statement.

Attached is a patch to msh.c.  It fixes the problem.  Cd to the root of your
busybox tree and execute "patch -p1 < msh.c.patch"

Unfortunately, I won't have more time to work on this so I hope that there
aren't any problems!

Michael Leibow
Senior Software Engineer

Belkin Corporation

20 years agoRun msh through indent
Eric Andersen [Wed, 4 Aug 2004 19:16:54 +0000 (19:16 -0000)]
Run msh through indent

20 years agoWilliam Barsse writes:
Eric Andersen [Tue, 3 Aug 2004 08:23:33 +0000 (08:23 -0000)]
William Barsse writes:

fixes two other issues (plus the previous as well) with a 2.4 kernel :

- should be able to modprobe an already loaded module and get 0 return
code :
# modprobe <something> && modprobe <something> && echo "ok" || echo "failed"
....
failed

Well, hope this helps and that I didn't screw up again,
- William

20 years agoTito, farmatito at tiscali dot it writes:
Eric Andersen [Tue, 3 Aug 2004 00:14:02 +0000 (00:14 -0000)]
Tito, farmatito at tiscali dot it writes:

Hi to all,
This patch is useful for:
1) remove an unused var from extern char *find_real_root_device_name(const char* name)
    changing it to extern char *find_real_root_device_name(void).
2) fixes include/libbb.h, coreutils/df.c, util-linux/mount.c and  util-linux/umount.c accordingly.
3) fixes a bug, really a false positive,  in find_real_root_device_name() that happens if
    in the /dev directory exists a link named root (/dev/root) that should be skipped but
    is not. This affects applets like df that display wrong results

20 years agofixup cut-n-paste problem
Eric Andersen [Sun, 1 Aug 2004 18:54:45 +0000 (18:54 -0000)]
fixup cut-n-paste problem