mirror of
https://github.com/systemd/systemd.git
synced 2025-02-04 21:47:31 +03:00
fd-util: be more careful with fclose() errnos
This might fix #15859, a bug which I find very puzzling.
This commit is contained in:
parent
112bed84bf
commit
75f6d5d87e
@ -103,13 +103,16 @@ int fclose_nointr(FILE *f) {
|
||||
|
||||
/* Same as close_nointr(), but for fclose() */
|
||||
|
||||
errno = 0; /* Extra safety: if the FILE* object is not encapsulating an fd, it might not set errno
|
||||
* correctly. Let's hence initialize it to zero first, so that we aren't confused by any
|
||||
* prior errno here */
|
||||
if (fclose(f) == 0)
|
||||
return 0;
|
||||
|
||||
if (errno == EINTR)
|
||||
return 0;
|
||||
|
||||
return -errno;
|
||||
return errno_or_else(EIO);
|
||||
}
|
||||
|
||||
FILE* safe_fclose(FILE *f) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user