diff options
author | Ulrich Drepper <drepper@redhat.com> | 2005-07-18 22:28:46 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2005-07-18 22:28:46 +0000 |
commit | 233399bce2e79e5af3b344782e9943d5f1a9cdcb (patch) | |
tree | 6c178b10c4b4e26409278419bdd2377b48ca7086 | |
parent | 9f3731cf7f8f1d1b4718fdbeae2ca5d46bbc6950 (diff) | |
download | glibc-233399bce2e79e5af3b344782e9943d5f1a9cdcb.zip glibc-233399bce2e79e5af3b344782e9943d5f1a9cdcb.tar.gz glibc-233399bce2e79e5af3b344782e9943d5f1a9cdcb.tar.bz2 |
* nscd/Makefile (nscd-cflags): Add _FORTIFY_SOURCE.
* nscd/connections.c: Fix a few wur warnings.
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | nscd/Makefile | 2 | ||||
-rw-r--r-- | nscd/connections.c | 16 |
3 files changed, 16 insertions, 6 deletions
@@ -1,5 +1,9 @@ 2005-07-18 Ulrich Drepper <drepper@redhat.com> + * nscd/Makefile (nscd-cflags): Add _FORTIFY_SOURCE. + + * nscd/connections.c: Fix a few wur warnings. + * nscd/grpcache.c (cache_addgr): Use correct maximum for group ID length. Patch by Ivan Gyurdiev <ivg2@cornell.edu>. diff --git a/nscd/Makefile b/nscd/Makefile index 2ebd90b..4b6f296 100644 --- a/nscd/Makefile +++ b/nscd/Makefile @@ -84,7 +84,7 @@ CFLAGS-nscd_gethst_r.c = -fexceptions CFLAGS-nscd_getai.c = -fexceptions CFLAGS-nscd_initgroups.c = -fexceptions -nscd-cflags = -DIS_IN_nscd=1 +nscd-cflags = -DIS_IN_nscd=1 -D_FORTIFY_SOURCE=2 ifeq (yesyes,$(have-fpie)$(build-shared)) nscd-cflags += -fpie endif diff --git a/nscd/connections.c b/nscd/connections.c index 9dc852a..347862e 100644 --- a/nscd/connections.c +++ b/nscd/connections.c @@ -393,20 +393,23 @@ cannot create read-only descriptor for \"%s\"; no mmap"), if (offset % ps != 0) { towrite = MIN (remaining, ps - (offset % ps)); - pwrite (fd, tmpbuf, towrite, offset); + if (pwrite (fd, tmpbuf, towrite, offset) != towrite) + goto write_fail; offset += towrite; remaining -= towrite; } while (remaining > ps) { - pwrite (fd, tmpbuf, ps, offset); + if (pwrite (fd, tmpbuf, ps, offset) == -1) + goto write_fail; offset += ps; remaining -= ps; } - if (remaining > 0) - pwrite (fd, tmpbuf, remaining, offset); + if (remaining > 0 + && pwrite (fd, tmpbuf, remaining, offset) != remaining) + goto write_fail; /* Create the header of the file. */ struct database_pers_head head = @@ -426,6 +429,7 @@ cannot create read-only descriptor for \"%s\"; no mmap"), || (mem = mmap (NULL, total, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0)) == MAP_FAILED) { + write_fail: unlink (dbs[cnt].db_filename); dbg_log (_("cannot write to database file %s: %s"), dbs[cnt].db_filename, strerror (errno)); @@ -965,7 +969,9 @@ cannot change to old working directory: %s; disabling paranoia mode"), setuid (server_uid); setgid (server_gid); } - chdir ("/"); + if (chdir ("/") != 0) + dbg_log (_("cannot change current working directory to \"/\": %s"), + strerror (errno)); paranoia = 0; } |