diff options
author | Jim Meyering <meyering@redhat.com> | 2011-09-30 20:13:01 +0200 |
---|---|---|
committer | Jim Meyering <meyering@redhat.com> | 2011-09-30 22:03:47 +0200 |
commit | 4f38e9f24971762540da9d5457dfa9e5e03d53ee (patch) | |
tree | d32acd375a120adfedef0573167a4bcaa8c337b7 /src/ls.c | |
parent | bec8920923fc3505606b92e4cf732afa714c63c5 (diff) | |
download | coreutils-4f38e9f24971762540da9d5457dfa9e5e03d53ee.tar.xz |
ls: avoid reading beyond end of color indicator
At first this looked like a buffer overrun, since there was no test
to ensure that the buffer length was 6. However, since the LS_COLORS
string is NUL-terminated and since settings within it are separated by
":" there was neither the risk of reading beyond end of buffer nor risk
of a false-positive match.
* src/ls.c (print_color_indicator): Use color_symlink_as_referent
rather than manually comparing against "target" again.
* src/system.h (STRNCMP_LIT): Correct description in comment.
Diffstat (limited to 'src/ls.c')
-rw-r--r-- | src/ls.c | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -4204,7 +4204,7 @@ print_color_indicator (const struct fileinfo *f, bool symlink_target) } else if (S_ISLNK (mode)) type = ((!linkok - && (!STRNCMP_LIT (color_indicator[C_LINK].string, "target") + && (color_symlink_as_referent || color_indicator[C_ORPHAN].string)) ? C_ORPHAN : C_LINK); else if (S_ISFIFO (mode)) |