summaryrefslogtreecommitdiff
path: root/misc
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2003-09-04 08:27:37 +0000
committerUlrich Drepper <drepper@redhat.com>2003-09-04 08:27:37 +0000
commitee8449f7293a20a2a971ecdbf3d31129a281dee4 (patch)
treef25aa0962ffe3adf5afc014d61a9db0f8153c5c3 /misc
parent58e8ec84f450f5f4eb00f4c445de9562bfa359e9 (diff)
Update.
2003-09-04 Ulrich Drepper <drepper@redhat.com> * libio/libio.h: Define _IO_FLAGS2_NOTCANCEL. * libio/fileops.c [_LIBC]: Remove close macro. (_IO_file_open): If _IO_FLAGS2_NOTCANCEL is set, use open_not_cancel. (_IO_new_file_open): Recognize 'c' flag in mode string. (_IO_file_read): If _IO_FLAGS2_NOTCANCEL is set use read_not_cancel. (_IO_new_file_write): If _IO_FLAGS2_NOTCANCEL is set use write_not_cancel. * iconv/gconv_conf.c: Use fopen with 'c' mode flag. * inet/rcmd.c: Likewise. * inet/ruserpass.c: Likewise. * intl/localealias.c: Likewise. * malloc/mtrace.c: Likewise. * misc/getpass.c: Likewise. * misc/getttyent.c: Likewise. * misc/mntent_r.c: Likewise. * misc/getusershell.c: Likewise. * nss/nsswitch.c: Likewise. * resolv/res_hconf.c: Likewise. * resolv/res_init.c: Likewise. * sysdeps/unix/sysv/linux/getsysstats.c: Likewise. * time/getdate.c: Likewise. * time/tzfile.c: Likewise. * misc/fstab.h: Undo last change. * misc/mntent.h: Likewise. * misc/Makefile: Remove CFLAGS-mntent_r.c, CFLAGS-mntent.c, and CFLAGS-fstab.c definition. 2003-09-04 Jakub Jelinek <jakub@redhat.com> 2003-09-03 Ulrich Drepper <drepper@redhat.com>
Diffstat (limited to 'misc')
-rw-r--r--misc/Makefile3
-rw-r--r--misc/fstab.h10
-rw-r--r--misc/getpass.c2
-rw-r--r--misc/getttyent.c2
-rw-r--r--misc/getusershell.c2
-rw-r--r--misc/mntent.h12
-rw-r--r--misc/mntent_r.c9
7 files changed, 21 insertions, 19 deletions
diff --git a/misc/Makefile b/misc/Makefile
index 406ed0fed9..db04bb9baf 100644
--- a/misc/Makefile
+++ b/misc/Makefile
@@ -86,9 +86,6 @@ CFLAGS-error.c = -fexceptions
CFLAGS-getpass.c = -fexceptions
CFLAGS-mkstemp.c = -fexceptions
CFLAGS-mkstemp64.c = -fexceptions
-CFLAGS-mntent_r.c = -fexceptions
-CFLAGS-mntent.c = -fexceptions
-CFLAGS-fstab.c = -fexceptions
CFLAGS-getsysstats.c = -fexceptions
CFLAGS-getusershell.c = -fexceptions
diff --git a/misc/fstab.h b/misc/fstab.h
index 421c65a5c6..24ecad7dbc 100644
--- a/misc/fstab.h
+++ b/misc/fstab.h
@@ -68,11 +68,11 @@ struct fstab
__BEGIN_DECLS
-extern struct fstab *getfsent (void);
-extern struct fstab *getfsspec (__const char *__name);
-extern struct fstab *getfsfile (__const char *__name);
-extern int setfsent (void);
-extern void endfsent (void);
+extern struct fstab *getfsent (void) __THROW;
+extern struct fstab *getfsspec (__const char *__name) __THROW;
+extern struct fstab *getfsfile (__const char *__name) __THROW;
+extern int setfsent (void) __THROW;
+extern void endfsent (void) __THROW;
__END_DECLS
diff --git a/misc/getpass.c b/misc/getpass.c
index 70562e54af..52dab9439a 100644
--- a/misc/getpass.c
+++ b/misc/getpass.c
@@ -56,7 +56,7 @@ getpass (prompt)
/* Try to write to and read from the terminal if we can.
If we can't open the terminal, use stderr and stdin. */
- in = fopen ("/dev/tty", "w+");
+ in = fopen ("/dev/tty", "w+c");
if (in == NULL)
{
in = stdin;
diff --git a/misc/getttyent.c b/misc/getttyent.c
index 1bc82e6938..2ff0a7b5c2 100644
--- a/misc/getttyent.c
+++ b/misc/getttyent.c
@@ -192,7 +192,7 @@ setttyent()
if (tf) {
(void)rewind(tf);
return (1);
- } else if ((tf = fopen(_PATH_TTYS, "r"))) {
+ } else if ((tf = fopen(_PATH_TTYS, "rc"))) {
/* We do the locking ourselves. */
__fsetlocking (tf, FSETLOCKING_BYCALLER);
return (1);
diff --git a/misc/getusershell.c b/misc/getusershell.c
index c15b8f664f..96ab5c8be1 100644
--- a/misc/getusershell.c
+++ b/misc/getusershell.c
@@ -100,7 +100,7 @@ initshells()
if (strings != NULL)
free(strings);
strings = NULL;
- if ((fp = fopen(_PATH_SHELLS, "r")) == NULL)
+ if ((fp = fopen(_PATH_SHELLS, "rc")) == NULL)
return (char **) okshells;
if (fstat64(fileno(fp), &statb) == -1) {
(void)fclose(fp);
diff --git a/misc/mntent.h b/misc/mntent.h
index 863664c6bf..a82e9539af 100644
--- a/misc/mntent.h
+++ b/misc/mntent.h
@@ -1,5 +1,5 @@
/* Utilities for reading/writing fstab, mtab, etc.
- Copyright (C) 1995-1999, 2003 Free Software Foundation, Inc.
+ Copyright (C) 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -64,28 +64,28 @@ struct mntent
/* Prepare to begin reading and/or writing mount table entries from the
beginning of FILE. MODE is as for `fopen'. */
-extern FILE *setmntent (__const char *__file, __const char *__mode);
+extern FILE *setmntent (__const char *__file, __const char *__mode) __THROW;
/* Read one mount table entry from STREAM. Returns a pointer to storage
reused on the next call, or null for EOF or error (use feof/ferror to
check). */
-extern struct mntent *getmntent (FILE *__stream);
+extern struct mntent *getmntent (FILE *__stream) __THROW;
#ifdef __USE_MISC
/* Reentrant version of the above function. */
extern struct mntent *getmntent_r (FILE *__restrict __stream,
struct mntent *__restrict __result,
char *__restrict __buffer,
- int __bufsize);
+ int __bufsize) __THROW;
#endif
/* Write the mount table entry described by MNT to STREAM.
Return zero on success, nonzero on failure. */
extern int addmntent (FILE *__restrict __stream,
- __const struct mntent *__restrict __mnt);
+ __const struct mntent *__restrict __mnt) __THROW;
/* Close a stream opened with `setmntent'. */
-extern int endmntent (FILE *__stream);
+extern int endmntent (FILE *__stream) __THROW;
/* Search MNT->mnt_opts for an option matching OPT.
Returns the address of the substring, or null if none found. */
diff --git a/misc/mntent_r.c b/misc/mntent_r.c
index 7a394186d4..9bfe8756f1 100644
--- a/misc/mntent_r.c
+++ b/misc/mntent_r.c
@@ -1,5 +1,5 @@
/* Utilities for reading/writing fstab, mtab, etc.
- Copyright (C) 1995-2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1995-2000, 2001, 2002, 2003 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -38,7 +38,12 @@
FILE *
__setmntent (const char *file, const char *mode)
{
- FILE *result = fopen (file, mode);
+ /* Extend the mode parameter with "c" to disable cancellation in the
+ I/O functions. */
+ size_t modelen = strlen (mode);
+ char newmode[modelen + 2];
+ memcpy (mempcpy (newmode, mode, modelen), "c", 2);
+ FILE *result = fopen (file, newmode);
if (result != NULL)
/* We do the locking ourselves. */