[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
PS1 expansion of \W incorrect for short paths
From: |
Cameron Hutchison |
Subject: |
PS1 expansion of \W incorrect for short paths |
Date: |
Tue, 18 Jan 2011 14:41:29 +1100 |
User-agent: |
Mutt/1.5.18 (2008-05-17) |
Configuration Information [Automatically generated, do not change]:
Machine: x86_64
OS: linux-gnu
Compiler: gcc
Compilation CFLAGS: -DPROGRAM='bash' -DCONF_HOSTTYPE='x86_64'
-DCONF_OSTYPE='linux-gnu' -DCONF_MACHTYPE='x86_64-pc-linux-gnu'
-DCONF_VENDOR='pc' -DLOCALEDIR='/usr/share/locale' -DPACKAGE='bash' -DSHELL
-DHAVE_CONFIG_H -I. -I../bash -I../bash/include -I../bash/lib -g -O2 -Wall
uname output: Linux balrog 2.6.37-balrog-1-00002-gaf41dc2 #2 SMP PREEMPT Tue
Jan 18 11:16:08 EST 2011 x86_64 GNU/Linux
Machine Type: x86_64-pc-linux-gnu
Bash Version: 4.1
Patch Level: 5
Release Status: release
Description:
Prompt expansion of \W sometimes produces garbage prompts.
Repeat-By:
$ PS1='\W$ '
~$ cd /home
hmee$ cd /proc
pocc$ cd /lib32
li332$
Fix:
In parse.y : decode_prompt_string() in the 'W' case, it uses strcpy
to copy the basename of the path to the beginning of the string.
For short strings, the src and dest args to strcpy may overlap
which is not supported by strcpy.
memmove should be used instead.
change
strcpy (t_string, t + 1);
to
memmove (t_string, t + 1, strlen(t + 1) + 1);
(untested)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- PS1 expansion of \W incorrect for short paths,
Cameron Hutchison <=