Subject: dash only reads the first character from pipe (bash reads whole line)
Date: Tue, 22 Sep 2009 15:49:40 +0200
Package: dash
Version: 0.5.5.1-2.3
Severity: important
The 'read' command seems to only read the first character and not the whole line.
Example / comparison with bash:
# /bin/dash
# read MAX </proc/sys/net/netfilter/nf_conntrack_max
# echo $MAX
2
# /bin/bash
# read MAX </proc/sys/net/netfilter/nf_conntrack_max
# echo $MAX
262144
-- System Information:
Debian Release: squeeze/sid
APT prefers testing
APT policy: (990, 'testing'), (500, 'stable')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.26-2-vserver-amd64 (SMP w/4 CPU cores)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages dash depends on:
ii debianutils 3.2.1 Miscellaneous utilities specific t
ii dpkg 1.15.3.1+b1 Debian package management system
ii libc6 2.9-25 GNU C Library: Shared libraries
dash recommends no packages.
dash suggests no packages.
-- debconf information:
* dash/sh: true
Subject: Re: Bug#547902: dash only reads the first character from pipe (bash reads whole line)
Date: Tue, 29 Sep 2009 11:59:55 +0000
On Tue, Sep 22, 2009 at 03:49:40PM +0200, Corin wrote:
> The 'read' command seems to only read the first character and not the whole line.
>
> Example / comparison with bash:
>
> # /bin/dash
> # read MAX </proc/sys/net/netfilter/nf_conntrack_max
> # echo $MAX
> 2
>
> # /bin/bash
> # read MAX </proc/sys/net/netfilter/nf_conntrack_max
> # echo $MAX
> 262144
Hi, this doesn't look like a bug in dash, but in the kernel's
implementation of the /proc/sys/net/ hierarchy. If you copy the file to
/tmp/, it works just fine.
cat <<EOT >t.c
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int main(int argc, char **argv) {
char c;
int fd = open(argv[1], O_RDONLY);
if (fd == -1) return 1;
for (;;) {
int i = read(fd, &c, 1);
if (i == 0) break;
if (i == -1) return 2;
if (write(1, &c, 1) == -1) return 3;
}
write(1, "\n", 1);
return 0;
}
EOT
gcc t.c
./a.out /proc/sys/net/unix/max_dgram_qlen
cat /proc/sys/net/unix/max_dgram_qlen
cp /proc/sys/net/unix/max_dgram_qlen /tmp/
./a.out /tmp/max_dgram_qlen
Regards, Gerrit.
Acknowledgement sent
to Netskin | Corin Langosch <[email protected]>:
Extra info received and forwarded to list. Copy sent to Gerrit Pape <[email protected]>.
(Thu, 08 Oct 2009 11:57:11 GMT) (full text, mbox, link).
Subject: Re: Bug#547902: dash only reads the first character from pipe (bash
reads whole line)
Date: Thu, 08 Oct 2009 13:34:40 +0200
Hi,
I'm still not sure if it's a kernel bug/misbehavior, as bash works fine
on the same system. And even if it's a kernel bug, shouldn't dash
contain the same work-around as bash seems to have?
Fact is, when upgrading debian (and so dash becomes the default shell)
some applications break because of this. One example are munin plugins,
which is where I discovered the bug/ regression. Changing the shebang
line in the munin plugins from /bin/sh (symlink to /bin/dash) to
/bin/bash solves the problems.
Corin
Acknowledgement sent
to Gerrit Pape <[email protected]>:
Extra info received and forwarded to list. Copy sent to Debian Kernel Team <[email protected]>.
(Tue, 13 Oct 2009 11:39:05 GMT) (full text, mbox, link).
Acknowledgement sent
to Ben Hutchings <[email protected]>:
Extra info received and forwarded to list. Copy sent to Debian Kernel Team <[email protected]>.
(Sat, 17 Oct 2009 00:45:03 GMT) (full text, mbox, link).
On Tue, 2009-10-13 at 11:13 +0000, Gerrit Pape wrote:
> tags 547902 + patch
> quit
>
> Hi, please see http://bugs.debian.org/547902
>
> Here's a patch from Christian Hohnstaedt <[email protected]>
[...]
Let us know when this change is accepted upstream.
Ben.
--
Ben Hutchings
It is impossible to make anything foolproof because fools are so ingenious.
Acknowledgement sent
to Gerrit Pape <[email protected]>:
Extra info received and forwarded to list. Copy sent to Debian Kernel Team <[email protected]>.
(Fri, 13 Nov 2009 11:09:06 GMT) (full text, mbox, link).
Subject: Re: Bug#547902: dash only reads the first character from pipe (bash reads whole line)
Date: Fri, 13 Nov 2009 11:00:26 +0000
On Sat, Oct 17, 2009 at 01:36:03AM +0100, Ben Hutchings wrote:
> On Tue, 2009-10-13 at 11:13 +0000, Gerrit Pape wrote:
> > tags 547902 + patch
> > quit
> >
> > Hi, please see http://bugs.debian.org/547902
> >
> > Here's a patch from Christian Hohnstaedt <[email protected]>
> [...]
>
> Let us know when this change is accepted upstream.
Sorry, I neither forwarded it upstream, nor follow upstream development.
Regards, Gerrit.
Acknowledgement sent
to Ben Hutchings <[email protected]>:
Extra info received and forwarded to list. Copy sent to Debian Kernel Team <[email protected]>.
(Fri, 13 Nov 2009 12:36:07 GMT) (full text, mbox, link).
On Fri, 2009-11-13 at 11:00 +0000, Gerrit Pape wrote:
> On Sat, Oct 17, 2009 at 01:36:03AM +0100, Ben Hutchings wrote:
> > On Tue, 2009-10-13 at 11:13 +0000, Gerrit Pape wrote:
> > > tags 547902 + patch
> > > quit
> > >
> > > Hi, please see http://bugs.debian.org/547902
> > >
> > > Here's a patch from Christian Hohnstaedt <[email protected]>
> > [...]
> >
> > Let us know when this change is accepted upstream.
>
> Sorry, I neither forwarded it upstream, nor follow upstream development.
Then we will not apply your patch.
Ben.
--
Ben Hutchings
The two most common things in the universe are hydrogen and stupidity.
Subject: [[email protected]: Re: Bug#547902: dash only reads the first character from pipe (bash reads whole line)]
Date: Fri, 13 Nov 2009 14:29:20 +0000
FYI. Sorry, I can't help further.
Regards, Gerrit.
----- Forwarded message from Ben Hutchings <[email protected]> -----
From: Ben Hutchings <[email protected]>
To: Gerrit Pape <[email protected]>, [email protected]
Date: Fri, 13 Nov 2009 12:34:10 +0000
Subject: Re: Bug#547902: dash only reads the first character from pipe
(bash reads whole line)
On Fri, 2009-11-13 at 11:00 +0000, Gerrit Pape wrote:
> On Sat, Oct 17, 2009 at 01:36:03AM +0100, Ben Hutchings wrote:
> > On Tue, 2009-10-13 at 11:13 +0000, Gerrit Pape wrote:
> > > tags 547902 + patch
> > > quit
> > >
> > > Hi, please see http://bugs.debian.org/547902
> > >
> > > Here's a patch from Christian Hohnstaedt <[email protected]>
> > [...]
> >
> > Let us know when this change is accepted upstream.
>
> Sorry, I neither forwarded it upstream, nor follow upstream development.
Then we will not apply your patch.
Ben.
--
Ben Hutchings
The two most common things in the universe are hydrogen and stupidity.
----- End forwarded message -----
Acknowledgement sent
to Moritz Muehlenhoff <[email protected]>:
Extra info received and forwarded to list. Copy sent to Debian Kernel Team <[email protected]>.
(Wed, 18 Nov 2009 21:39:03 GMT) (full text, mbox, link).
Acknowledgement sent
to Christian Hohnstaedt <[email protected]>:
Extra info received and forwarded to list. Copy sent to Debian Kernel Team <[email protected]>.
(Thu, 19 Nov 2009 08:39:03 GMT) (full text, mbox, link).
Acknowledgement sent
to Moritz Muehlenhoff <[email protected]>:
Extra info received and forwarded to list. Copy sent to Debian Kernel Team <[email protected]>.
(Tue, 24 Nov 2009 21:21:06 GMT) (full text, mbox, link).
Subject: Re: Bug#547902: dash only reads the first character from pipe (bash reads whole line)
Date: Tue, 24 Nov 2009 22:16:06 +0100
On Thu, Nov 19, 2009 at 09:27:47AM +0100, Christian Hohnstaedt wrote:
> On Wed, Nov 18, 2009 at 10:13:48PM +0100, Moritz Muehlenhoff wrote:
> > On Tue, Oct 13, 2009 at 11:13:01AM +0000, Gerrit Pape wrote:
> > > tags 547902 + patch
> > > quit
> >
> > [ Adding Christian to CC: ]
> >
> > Christian, did you submit your patch upstream?
>
> No, not yet.
Please keep this bug CCed if you submit it.
> It still has the problem that reading the value(s) bytewise returns garbage
> if the value(s) change during reading.
>
> But I can try to send it to lkml and see what they say.
> Shall I point to this bug-report and may I add a "Tested-by" line ?
I didn't test it myself, but maybe Corin can give feedback on this.
Cheers,
Moritz
Subject: Re: Bug#547902: dash only reads the first character from pipe
(bash reads whole line)
Date: Fri, 6 May 2011 21:15:45 +0200
On Tue, Nov 24, 2009 at 10:16:06PM +0100, Moritz Muehlenhoff wrote:
> On Thu, Nov 19, 2009 at 09:27:47AM +0100, Christian Hohnstaedt wrote:
> > On Wed, Nov 18, 2009 at 10:13:48PM +0100, Moritz Muehlenhoff wrote:
> > > On Tue, Oct 13, 2009 at 11:13:01AM +0000, Gerrit Pape wrote:
> > > > tags 547902 + patch
> > > > quit
> > >
> > > [ Adding Christian to CC: ]
> > >
> > > Christian, did you submit your patch upstream?
> >
> > No, not yet.
>
> Please keep this bug CCed if you submit it.
Closing due to lack of activity.
Cheers,
Moritz
Reply sent
to Moritz Muehlenhoff <[email protected]>:
You have taken responsibility.
(Fri, 06 May 2011 19:18:10 GMT) (full text, mbox, link).
Notification sent
to Corin Langosch <[email protected]>:
Bug acknowledged by developer.
(Fri, 06 May 2011 19:18:10 GMT) (full text, mbox, link).
Acknowledgement sent
to Jonathan Nieder <[email protected]>:
Extra info received and forwarded to list. Copy sent to Debian Kernel Team <[email protected]>.
(Fri, 06 May 2011 19:30:03 GMT) (full text, mbox, link).
Subject: Re: dash only reads the first character from pipe (bash reads whole
line)
Date: Fri, 6 May 2011 14:26:07 -0500
reassign 547906 dash 0.5.6.1-1~exp2
reopen 547906
tags 547906 = patch
quit
Moritz Muehlenhoff wrote:
> Closing due to lack of activity.
I'll take it. Will reassign back to linux-2.6 if there is progress.
Acknowledgement sent
to Gioele Barabucci <[email protected]>:
Extra info received and forwarded to list. Copy sent to Gerrit Pape <[email protected]>.
(Sat, 14 Nov 2015 13:03:04 GMT) (full text, mbox, link).
Changed Bug title to 'dash: 'read' builtin reads only the first character from pipes or /proc files' from 'dash only reads the first character from pipe (bash reads whole line)'
Request was from Gioele Barabucci <[email protected]>
to [email protected].
(Fri, 20 Nov 2015 00:45:11 GMT) (full text, mbox, link).
Acknowledgement sent
to Herbert Xu <[email protected]>:
Extra info received and forwarded to list. Copy sent to Andrej Shadura <[email protected]>.
(Sun, 19 May 2024 10:36:04 GMT) (full text, mbox, link).
Debbugs is free software and licensed under the terms of the GNU General
Public License version 2. The current version can be obtained
from https://bugs.debian.org/debbugs-source/.