read(1) garbage when input redirected from make incorrectly
Jan Mikkelsen
janm at transactionware.com
Tue Feb 16 02:12:35 UTC 2010
On 16/02/2010, at 11:55 AM, Garrett Cooper wrote:
> Hi Hackers,
> I accidentally reproduced the following after executing read
> properly in a pipeline with make:
>
> [garrcoop at garrcoop-fbsd /usr/home/garrcoop]$ read DESTDIR SRCCONF <
> /usr/bin/make -V DESTDIR -V SRCCONF
> bash: read: `-V': not a valid identifier
> [garrcoop at garrcoop-fbsd /usr/home/garrcoop]$ echo $DESTDIR
> ELF
> [garrcoop at garrcoop-fbsd /usr/home/garrcoop]$ hexdump -C foo
> 00000000 7f 45 4c 46 01 01 01 0a |.ELF....|
> 00000008
> [garrcoop at garrcoop-fbsd /usr/home/garrcoop]$
>
> Is this an issue to be concerned about apart from cosmetic noise,
> i.e. potential buffer access problem? I see the same garbage from
> bash/coreutils on RHEL 4.6 as well as read(1) and /bin/sh on FreeBSD
> with RELENG_8, so the issue appears to be consistent on multiple
> OSes...
> Thanks,
> -Garrett
I think you meant to type:
make -V DESTDIR -V SRCCONF | read DESTDIR SRCCONF
What you are actually doing is feeding the contents of the make binary into:
read DESTDIR SRCCONF -V DESTDIR -V SRCCONF
and the shell is correctly complaining about '-V' not being a valid identifier, and populating DESTDIR with data it got from the binary.
Jan
More information about the freebsd-hackers
mailing list