| Summary: | Поломан /usr/bin/[ | ||
|---|---|---|---|
| Product: | Sisyphus | Reporter: | Kirill A. Shutemov <kas> |
| Component: | coreutils | Assignee: | placeholder <placeholder> |
| Status: | CLOSED FIXED | QA Contact: | qa-sisyphus |
| Severity: | major | ||
| Priority: | P3 | CC: | glebfm, ldv, placeholder, vsu, vt |
| Version: | unstable | ||
| Hardware: | all | ||
| OS: | Linux | ||
В Федоре /usr/bin/[ не симлин, в отличии от Альта: $ ls -l /usr/bin/[ /usr/bin/test -rwxr-xr-x 1 root root 33632 Feb 17 18:22 /usr/bin/[ -rwxr-xr-x 1 root root 30616 Feb 17 18:22 /usr/bin/test В Федоре /usr/bin/[ не симлинк, в отличии от Альта: $ ls -l /usr/bin/[ /usr/bin/test -rwxr-xr-x 1 root root 33632 Feb 17 18:22 /usr/bin/[ -rwxr-xr-x 1 root root 30616 Feb 17 18:22 /usr/bin/test Ясно как белый день. Мы, видимо, экономили место на диске. Да, помогло. На самом деле эта ошибка висела уже очень давно: https://bugzilla.altlinux.org/show_bug.cgi?id=10170 (просто там testcase делался под zsh, где command блокирует использование и встроенных команд). |
$ cat test.c #include <unistd.h> int main(int argc, char **argv) { char *newargv[] = { "[", "1", "=", "1", "]", NULL}; char *newenviron[] = { NULL }; return execve("/usr/bin/[", newargv, newenviron); } $ gcc -Wall test.c -o test $ ./test [: extra argument `]' В Федоре не воспроизводится.