Bug 8014 - Ошибка в функции checkpid?!
Summary: Ошибка в функции checkpid?!
Status: CLOSED NOTABUG
Alias: None
Product: Sisyphus
Classification: Development
Component: service (show other bugs)
Version: unstable
Hardware: all Linux
: P2 minor
Assignee: placeholder@altlinux.org
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-09-19 21:04 MSD by Pavel Vainerman
Modified: 2007-03-25 16:19 MSD (History)
4 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Pavel Vainerman 2005-09-19 21:04:10 MSD
в функции checkpid (/etc/init.d/functions-compat) помоему имеется "логическая 
ошибка"...  
checkpid() 
{ 
    while [ -n "$1" ]; do 
        [ -d "/proc/$1" ] && shift || return 1 
    done 
    return 0 
} 
 
Как я понимал 0 возвращается если pid (или список pid-ов) найден. 
 
Если передать пустой $1, то тоже вернётся 0. Что вроде как неверно. 
Если я прав, то можно добавить вначале строку: [ -z "$1" ] && return 1
Comment 1 Dmitry V. Levin 2005-09-22 19:41:58 MSD
Я полагаю, что такое поведение функции checkpid (если ей не передано аргументов,
то возвращать 0) было заложено сознательно теми, кто эту функцию придумал.

Я бы не хотел менять поведение функций в файле /etc/init.d/functions-compat,
поскольку их основной задачей является обеспечение обратной совместимости со
скриптами, написанными в стиле RH.
Comment 2 Dmitry V. Levin 2007-03-24 01:50:17 MSK
Поскольку других соображений не поступило, закрываю.
Comment 3 Pavel Vainerman 2007-03-25 16:19:52 MSD
Ну пожалуй соглашусь. Тем более, что проверка с пустым 
аргументом вряд-ли часто используется :)