Package: passwd
Version: 1:4.1.5.1-1
Severity: minor
If the editor invoked by vipw(8) exits with a non-zero exit status, vipw
reports two spurious "No such file or directory" errors:
wraith:~# EDITOR=false vipw
vipw: false: No such file or directory
vipw: false: No such file or directory
vipw: /etc/passwd is unchanged
Looking at the source code, I think the first message comes from this bit
of code in vipwedit():
if (system (buf) != 0) {
fprintf (stderr, "%s: %s: %s\n", Prog, editor,
strerror (errno));
exit (1);
} else {
exit (0);
}
This is wrong, because system() only sets errno when it returns -1 (to
indicate a failure to fork), and not when it returns the child process's
exit status.
The second message comes from this code a little later:
if ( (-1 == pid)
|| (WIFEXITED (status) == 0)
|| (WEXITSTATUS (status) != 0)) {
vipwexit (editor, 1, 1);
While a return value of -1 from waitpid() will set errno, a successful
return of a non-zero exit status will not.
--
Ben Harris, University of Cambridge Computing Service.
--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org