>>216
いや、NULLならショートカットで問題ないでしょ。

元のコードを見ずに書くけど、getpwnam(username)の前でpwdにNULLが入ってるなら
if (username == NULL)
pwd = getpwnam(username);
if (pwd == NULL || pwd->pw_uid != ruid)
pwd = getpwuid(ruid);
の方が見やすくない?

というか、変数の宣言だけして初期化もせずいきなり比較するようなコードが結構あって泣いたw