* /usr/src/linux/scripts/ver_linux prints out incorrect info when "ls" is aliased.
@ 2001-02-04 15:15 Ishikawa
2001-02-05 13:39 ` Peter Samuelson
0 siblings, 1 reply; 4+ messages in thread
From: Ishikawa @ 2001-02-04 15:15 UTC (permalink / raw)
To: linux-kernel
[-- Attachment #1: Type: text/plain, Size: 1151 bytes --]
I just noticed that running
. /usr/src/linux/script/ver_linux
prints out strange libc version when I run it
as a normal user. It prints out expected output if
I run it as superuser.
Output Example: Incorrect and correct examples.
Binutils 2.10.0.26
! Linux C Library 1.3.so*
Dynamic linker ldd: version 1.9.11
--- 7,9 ----
Binutils 2.10.0.26
! Linux C Library 2.1.3
Dynamic linker ldd: version 1.9.11
After playing with the ver_linux script,
I found that if the command "ls" is aliased to
"ls -aF", the output is incorrect.
Not that I alias "ls" for superuser, but
I usually write bug report, etc. in
a normal user account, and ls is
aliased to "ls -aF" there.
Here is a potential fix to "ver_script".
(Given the possibility of various shell binaries/shell
startup code setting, etc., I think the
common denomiator solution is to use the output of
which as the name of the ls binary.)
I didn't change the handling of other commands.
"ls" is likely to be aliased, but I wonder
whether other commands are aliased. YMMV.
Possible fix to ver_script is attached.
[-- Attachment #2: ver_linux.diff --]
[-- Type: text/plain, Size: 1956 bytes --]
*** ver_linux Sun Feb 4 23:53:11 2001
--- /tmp/ver_linux Mon Feb 5 00:00:54 2001
***************
*** 7,12 ****
--- 7,19 ----
PATH=/sbin:/usr/sbin:/bin:/usr/bin:$PATH
echo '-- Versions installed: (if some fields are empty or look'
echo '-- unusual then possibly you have very old versions)'
+
+ # to avoid the effect of aliasing "ls" command.
+ # YMMV.
+ # (I am not sure if other commands require similar
+ # treatment.)
+ LS=`which ls`
+
uname -a
insmod -V 2>&1 | awk 'NR==1 {print "Kernel modules ",$NF}'
echo "Gnu C " `gcc --version`
***************
*** 14,24 ****
'/GNU Make/{print "Gnu Make ",$NF}'
ld -v 2>&1 | awk -F\) '{print $1}' | awk \
'/BFD/{print "Binutils ",$NF}'
! ls -l `ldd /bin/sh | awk '/libc/{print $3}'` | sed -e 's/\.so$//' \
| awk -F'[.-]' '{print "Linux C Library " $(NF-2)"."$(NF-1)"."$NF}'
echo -n "Dynamic linker "
ldd -v > /dev/null 2>&1 && ldd -v || ldd --version |head -1
! ls -l /usr/lib/lib{g,stdc}++.so 2>/dev/null | awk -F. \
'{print "Linux C++ Library " $4"."$5"."$6}'
ps --version 2>&1 | awk 'NR==1{print "Procps ", $NF}'
mount --version | awk -F\- '{print "Mount ", $NF}'
--- 21,31 ----
'/GNU Make/{print "Gnu Make ",$NF}'
ld -v 2>&1 | awk -F\) '{print $1}' | awk \
'/BFD/{print "Binutils ",$NF}'
! ${LS} -l `ldd /bin/sh | awk '/libc/ { print $3 } ' ` | sed -e 's/\.so$//' \
| awk -F'[.-]' '{print "Linux C Library " $(NF-2)"."$(NF-1)"."$NF}'
echo -n "Dynamic linker "
ldd -v > /dev/null 2>&1 && ldd -v || ldd --version |head -1
! ${LS} -l /usr/lib/lib{g,stdc}++.so 2>/dev/null | awk -F. \
'{print "Linux C++ Library " $4"."$5"."$6}'
ps --version 2>&1 | awk 'NR==1{print "Procps ", $NF}'
mount --version | awk -F\- '{print "Mount ", $NF}'
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: /usr/src/linux/scripts/ver_linux prints out incorrect info when "ls" is aliased.
2001-02-04 15:15 /usr/src/linux/scripts/ver_linux prints out incorrect info when "ls" is aliased Ishikawa
@ 2001-02-05 13:39 ` Peter Samuelson
2001-02-05 16:15 ` Ishikawa
0 siblings, 1 reply; 4+ messages in thread
From: Peter Samuelson @ 2001-02-05 13:39 UTC (permalink / raw)
To: Ishikawa; +Cc: linux-kernel
[Ishikawa]
> I just noticed that running
>
> . /usr/src/linux/script/ver_linux
>
> prints out strange libc version
[...]
> I found that if the command "ls" is aliased to "ls -aF"
So ... don't use '.' to execute scripts. If there is some
documentation somewhere that told you to do this, please notify the
author that it is wrong.
sh scripts/ver_linux
Peter
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: /usr/src/linux/scripts/ver_linux prints out incorrect info when "ls" is aliased.
2001-02-05 13:39 ` Peter Samuelson
@ 2001-02-05 16:15 ` Ishikawa
2001-02-05 16:39 ` Peter Samuelson
0 siblings, 1 reply; 4+ messages in thread
From: Ishikawa @ 2001-02-05 16:15 UTC (permalink / raw)
To: Peter Samuelson, linux-kernel
Peter Samuelson wrote:
> [Ishikawa]
> > I just noticed that running
> >
> > . /usr/src/linux/script/ver_linux
> >
> > prints out strange libc version
> [...]
> > I found that if the command "ls" is aliased to "ls -aF"
>
> So ... don't use '.' to execute scripts. If there is some
> documentation somewhere that told you to do this, please notify the
> author that it is wrong.
>
> sh scripts/ver_linux
>
This is a good observation.
I have no idea why I invoked ver_linux using "." : I must have
seen it somewhere and just followed it somehow.
Hard to tell where I have seen. I must have seen it in the last few
days.
Here is one URL where "." is used, but this was not where I saw the
usage.
http://oss.sgi.com/projects/devfs/mail/devfs/msg00261.html
I have found the same problem cropped up in the kernel mailing list
before.
http://uwsg.iu.edu/hypermail/linux/kernel/0003.1/0898.html
The above thread showed that non-other than Alan Cox also chimed in the
thread.
So there must have been a reason to let people try "." for
invoking /usr/src/linux/scripts/ver_linux.
One theory might be that, as a root, people may run
# ./ver_linux (under scripts directory).
And then, when they try to show what they did, they may
create a report showing the FULL path name of the scripts so that
there is no mistaking ver_scripts for something else.
And in doing so, somebody might have forgotten to remove the
leading "."
#./usr/src/linux/scripts/ver_linux
Somebody eles looked at the above and "figured" that the
leading "./" is a typo and thus corrects it to ". /"
and now we have
#. /usr/src/linux/scripts/ver_linux
Anyway, I have found another libc version output
in somebody's post. The poster must have similar problem as I did.
(See at the end for ver_linux output result. )
http://www.uwsg.indiana.edu/hypermail/linux/kernel/9906.3/0990.html
So in any case, I think protecting the
ver_linux from strange interaction of various
shell features might be a good idea after all.
(I was not convinced why "sh /usr/src/linux/scripts/ver_linux" works
since /bin/sh is a symlink to bash in my setup and it seems that
my ./bashrc includes the ls alias. But when I tried it, it works. )
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: /usr/src/linux/scripts/ver_linux prints out incorrect info when "ls" is aliased.
2001-02-05 16:15 ` Ishikawa
@ 2001-02-05 16:39 ` Peter Samuelson
0 siblings, 0 replies; 4+ messages in thread
From: Peter Samuelson @ 2001-02-05 16:39 UTC (permalink / raw)
To: Ishikawa; +Cc: linux-kernel
[Ishikawa <ishikawa@yk.rim.or.jp>]
> I have no idea why I invoked ver_linux using "." : I must have seen
> it somewhere and just followed it somehow.
Who knows. Anyway, the following works in 'bash' at least -- don't
know about other shells -- but it's quite a hack....
Peter
--- scripts/ver_linux~ Tue Sep 19 22:28:37 2000
+++ scripts/ver_linux Mon Feb 5 10:38:21 2001
@@ -4,6 +4,15 @@
# /bin /sbin /usr/bin /usr/sbin /usr/local/bin, but it may
# differ on your system.
#
+case "$_" in /*/sh|/*/bash|sh|bash) ;; *)
+ echo '*** Warning: you appear to have used the dreaded'
+ echo '*** . /path/to/ver_linux'
+ echo '*** syntax -- I hope you don'\''t have any aliases set'
+ echo '*** that might affect this script.'
+ echo '*** Recommended syntax is:'
+ echo '*** sh /path/to/ver_linux'
+ ;;
+esac
PATH=/sbin:/usr/sbin:/bin:/usr/bin:$PATH
echo '-- Versions installed: (if some fields are empty or look'
echo '-- unusual then possibly you have very old versions)'
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2001-02-05 16:40 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-02-04 15:15 /usr/src/linux/scripts/ver_linux prints out incorrect info when "ls" is aliased Ishikawa
2001-02-05 13:39 ` Peter Samuelson
2001-02-05 16:15 ` Ishikawa
2001-02-05 16:39 ` Peter Samuelson
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®