pututxline: Don't set errno=0 in subfunctions.
The functions utx_active_add(), utx_active_remove(), utx_lastlogin_add() and utx_log_add() set errno to 0 if they are successful. This not only violates POSIX if pututxline() is successful, but may also overwrite a valid error with 0 if, for example, utx_lastlogin_add() fails while utx_log_add() succeeds. Reviewed by: ed
This commit is contained in:
parent
d96b98a360
commit
00e080be77
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=249593
@ -131,7 +131,8 @@ utx_active_add(const struct futx *fu)
|
||||
else
|
||||
error = 0;
|
||||
fclose(fp);
|
||||
errno = error;
|
||||
if (error != 0)
|
||||
errno = error;
|
||||
return (error == 0 ? 0 : 1);
|
||||
}
|
||||
|
||||
@ -169,7 +170,8 @@ utx_active_remove(struct futx *fu)
|
||||
}
|
||||
|
||||
fclose(fp);
|
||||
errno = error;
|
||||
if (ret != 0)
|
||||
errno = error;
|
||||
return (ret);
|
||||
}
|
||||
|
||||
@ -225,7 +227,8 @@ utx_lastlogin_add(const struct futx *fu)
|
||||
ret = -1;
|
||||
}
|
||||
fclose(fp);
|
||||
errno = error;
|
||||
if (ret == -1)
|
||||
errno = error;
|
||||
return (ret);
|
||||
}
|
||||
|
||||
@ -277,7 +280,8 @@ utx_log_add(const struct futx *fu)
|
||||
else
|
||||
error = 0;
|
||||
_close(fd);
|
||||
errno = error;
|
||||
if (error != 0)
|
||||
errno = error;
|
||||
return (error == 0 ? 0 : 1);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user