chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
gnome-ask-password-agent: restore removed libnotify0.6 support
[elogind.git]
/
src
/
util.c
diff --git
a/src/util.c
b/src/util.c
index c02b39e0ad5fb896d1c80977328b9762b2678e3c..c9366c4a393fe9239fd038e00f19f074eb020d20 100644
(file)
--- a/
src/util.c
+++ b/
src/util.c
@@
-1815,8
+1815,9
@@
int close_all_fds(const int except[], unsigned n_except) {
if (ignore_file(de->d_name))
continue;
if (ignore_file(de->d_name))
continue;
- if ((r = safe_atoi(de->d_name, &fd)) < 0)
- goto finish;
+ if (safe_atoi(de->d_name, &fd) < 0)
+ /* Let's better ignore this, just in case */
+ continue;
if (fd < 3)
continue;
if (fd < 3)
continue;
@@
-1839,16
+1840,13
@@
int close_all_fds(const int except[], unsigned n_except) {
continue;
}
continue;
}
- if (
(r = close_nointr(fd)
) < 0) {
+ if (
close_nointr(fd
) < 0) {
/* Valgrind has its own FD and doesn't want to have it closed */
/* Valgrind has its own FD and doesn't want to have it closed */
- if (errno != EBADF)
-
goto finish
;
+ if (errno != EBADF
&& r == 0
)
+
r = -errno
;
}
}
}
}
- r = 0;
-
-finish:
closedir(d);
return r;
}
closedir(d);
return r;
}
@@
-3619,6
+3617,10
@@
int wait_for_terminate_and_warn(const char *name, pid_t pid) {
}
void freeze(void) {
}
void freeze(void) {
+
+ /* Make sure nobody waits for us on a socket anymore */
+ close_all_fds(NULL, 0);
+
sync();
for (;;)
sync();
for (;;)