diff options
author | Ryan Lortie <desrt@desrt.ca> | 2010-12-19 02:59:50 -0500 |
---|---|---|
committer | Ryan Lortie <desrt@desrt.ca> | 2010-12-19 02:59:50 -0500 |
commit | 4f8a137821db0209f1cf1dc1573ebec0cf513292 (patch) | |
tree | 701213a7735cdbc38f10218281fa0548832bc103 /service/dconf-writer.c | |
parent | 1e66c619a7f58a729ea749af65d2b8baa542d012 (diff) | |
download | dconf-4f8a137821db0209f1cf1dc1573ebec0cf513292.tar.gz |
service: avoid making invalid syscalls
If we can't open the shm file then don't bother trying to
write/close/unlink it.
Diffstat (limited to 'service/dconf-writer.c')
-rw-r--r-- | service/dconf-writer.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/service/dconf-writer.c b/service/dconf-writer.c index 71d694c..3cf58f5 100644 --- a/service/dconf-writer.c +++ b/service/dconf-writer.c @@ -81,10 +81,17 @@ dconf_writer_touch_shm (DConfWriter *writer) gint fd; fd = open (writer->shm, O_WRONLY); - write (fd, &one, sizeof one); - close (fd); - unlink (writer->shm); + if (fd >= 0) + { + write (fd, &one, sizeof one); + close (fd); + + unlink (writer->shm); + } + + else if (errno != ENOENT) + unlink (writer->shm); } gboolean |