diff options
-rw-r--r-- | ChangeLog | 19 | ||||
-rw-r--r-- | manual/arith.texi | 6 | ||||
-rw-r--r-- | manual/charset.texi | 10 | ||||
-rw-r--r-- | manual/errno.texi | 2 | ||||
-rw-r--r-- | manual/install.texi | 2 | ||||
-rw-r--r-- | manual/llio.texi | 26 | ||||
-rw-r--r-- | manual/locale.texi | 2 | ||||
-rw-r--r-- | manual/maint.texi | 2 | ||||
-rw-r--r-- | manual/math.texi | 2 | ||||
-rw-r--r-- | manual/memory.texi | 6 | ||||
-rw-r--r-- | manual/message.texi | 2 | ||||
-rw-r--r-- | manual/probes.texi | 10 | ||||
-rw-r--r-- | manual/resource.texi | 2 | ||||
-rw-r--r-- | manual/signal.texi | 2 | ||||
-rw-r--r-- | manual/socket.texi | 22 | ||||
-rw-r--r-- | manual/stdio.texi | 4 | ||||
-rw-r--r-- | manual/string.texi | 4 | ||||
-rw-r--r-- | manual/time.texi | 2 | ||||
-rw-r--r-- | manual/users.texi | 4 |
19 files changed, 74 insertions, 55 deletions
@@ -56,6 +56,25 @@ * malloc/malloc.c (__libc_calloc): Simplify implementation. + * manual/arith.texi: Fix spaces after sentences. + * manual/charset.texi: Likewise. + * manual/errno.texi: Likewise. + * manual/install.texi: Likewise. + * manual/llio.texi: Likewise. + * manual/locale.texi: Likewise. + * manual/maint.texi: Likewise. + * manual/math.texi: Likewise. + * manual/memory.texi: Likewise. + * manual/message.texi: Likewise. + * manual/probes.texi: Likewise. + * manual/resource.texi: Likewise. + * manual/signal.texi: Likewise. + * manual/socket.texi: Likewise. + * manual/stdio.texi: Likewise. + * manual/string.texi: Likewise. + * manual/time.texi: Likewise. + * manual/users.texi: Likewise. + 2014-02-25 Carlos O'Donell <carlos@redhat.com> [BZ #16632] diff --git a/manual/arith.texi b/manual/arith.texi index d106014..72682f0 100644 --- a/manual/arith.texi +++ b/manual/arith.texi @@ -1237,7 +1237,7 @@ sqrt (creal (@var{z}) * creal (@var{z}) + cimag (@var{z}) * cimag (@var{z})) This function should always be used instead of the direct formula because it takes special care to avoid losing precision. It may also -take advantage of hardware support for this operation. See @code{hypot} +take advantage of hardware support for this operation. See @code{hypot} in @ref{Exponents and Logarithms}. @end deftypefun @@ -1369,7 +1369,7 @@ of @w{IEEE 754} conformance. @pindex math.h The functions listed here perform operations such as rounding and -truncation of floating-point values. Some of these functions convert +truncation of floating-point values. Some of these functions convert floating point numbers to integer values. They are all declared in @file{math.h}. @@ -2625,7 +2625,7 @@ All these functions are defined in @file{stdlib.h}. @safety{@prelim{}@mtunsafe{@mtasurace{:ecvt}}@asunsafe{}@acsafe{}} The function @code{ecvt} converts the floating-point number @var{value} to a string with at most @var{ndigit} decimal digits. The -returned string contains no decimal point or sign. The first digit of +returned string contains no decimal point or sign. The first digit of the string is non-zero (unless @var{value} is actually zero) and the last digit is rounded to nearest. @code{*@var{decpt}} is set to the index in the string of the first digit after the decimal point. diff --git a/manual/charset.texi b/manual/charset.texi index b2d73ab..68aecd3 100644 --- a/manual/charset.texi +++ b/manual/charset.texi @@ -1709,7 +1709,7 @@ implementation has the possibility to perform such a conversion, the function returns a handle. If the wanted conversion is not available, the @code{iconv_open} function -returns @code{(iconv_t) -1}. In this case the global variable +returns @code{(iconv_t) -1}. In this case the global variable @code{errno} can have the following values: @table @code @@ -1838,7 +1838,7 @@ implementation chosen for @theglibc{} as it is described below. Therefore an @code{iconv} call to reset the state should always be performed if some protocol requires this for the output text. -The conversion stops for one of three reasons. The first is that all +The conversion stops for one of three reasons. The first is that all characters from the input buffer are converted. This actually can mean two things: either all bytes from the input buffer are consumed or there are some bytes at the end of the buffer that possibly can form a @@ -2133,7 +2133,7 @@ will succeed, but how to find @math{@cal{B}}? Unfortunately, the answer is: there is no general solution. On some systems guessing might help. On those systems most character sets can -convert to and from UTF-8 encoded @w{ISO 10646} or Unicode text. Beside +convert to and from UTF-8 encoded @w{ISO 10646} or Unicode text. Beside this only some very system-specific methods can help. Since the conversion functions come from loadable modules and these modules must be stored somewhere in the filesystem, one @emph{could} try to find them @@ -2333,7 +2333,7 @@ identical. So far this section has described how modules are located and considered to be used. What remains to be described is the interface of the modules -so that one can write new ones. This section describes the interface as +so that one can write new ones. This section describes the interface as it is in use in January 1999. The interface will change a bit in the future but, with luck, only in an upwardly compatible way. @@ -2918,7 +2918,7 @@ gconv (struct __gconv_step *step, struct __gconv_step_data *data, /* @r{Run the conversion loop. @code{status} is set} @r{appropriately afterwards.} */ - /* @r{If this is the last step, leave the loop. There is} + /* @r{If this is the last step, leave the loop. There is} @r{nothing we can do.} */ if (data->__is_last) @{ diff --git a/manual/errno.texi b/manual/errno.texi index 6a691fc..41d6639 100644 --- a/manual/errno.texi +++ b/manual/errno.texi @@ -1317,7 +1317,7 @@ The function @code{strerror} is declared in @file{string.h}. The @code{strerror_r} function works like @code{strerror} but instead of returning the error message in a statically allocated buffer shared by all threads in the process, it returns a private copy for the -thread. This might be either some permanent global data or a message +thread. This might be either some permanent global data or a message string in the user supplied buffer starting at @var{buf} with the length of @var{n} bytes. diff --git a/manual/install.texi b/manual/install.texi index c0b8d9e..8562bdc 100644 --- a/manual/install.texi +++ b/manual/install.texi @@ -185,7 +185,7 @@ the compiler and/or binutils. If you only specify @samp{--host}, @code{configure} will prepare for a native compile but use what you specify instead of guessing what your -system is. This is most useful to change the CPU submodel. For example, +system is. This is most useful to change the CPU submodel. For example, if @code{configure} guesses your machine as @code{i686-pc-linux-gnu} but you want to compile a library for 586es, give @samp{--host=i586-pc-linux-gnu} or just @samp{--host=i586-linux} and add diff --git a/manual/llio.texi b/manual/llio.texi index 69b54c2..6f8adfc 100644 --- a/manual/llio.texi +++ b/manual/llio.texi @@ -1083,7 +1083,7 @@ which describe the location and size of each buffer. @comment BSD @deftp {Data Type} {struct iovec} -The @code{iovec} structure describes a buffer. It contains two fields: +The @code{iovec} structure describes a buffer. It contains two fields: @table @code @@ -1141,8 +1141,8 @@ error. The possible errors are the same as in @code{write}. @end deftypefun -@c Note - I haven't read this anywhere. I surmised it from my knowledge -@c of computer science. Thus, there could be subtleties I'm missing. +@c Note - I haven't read this anywhere. I surmised it from my knowledge +@c of computer science. Thus, there could be subtleties I'm missing. Note that if the buffers are small (under about 1kB), high-level streams may be easier to use than these functions. However, @code{readv} and @@ -1195,8 +1195,8 @@ The @code{mmap} function creates a new mapping, connected to bytes is created, which is not removed by closing the file. @var{address} gives a preferred starting address for the mapping. -@code{NULL} expresses no preference. Any previous mapping at that -address is automatically removed. The address you give may still be +@code{NULL} expresses no preference. Any previous mapping at that +address is automatically removed. The address you give may still be changed, unless you use the @code{MAP_FIXED} flag. @vindex PROT_READ @@ -1260,7 +1260,7 @@ as the included @code{malloc} automatically uses @code{mmap} where appropriate. @c Linux has some other MAP_ options, which I have not discussed here. @c MAP_DENYWRITE, MAP_EXECUTABLE and MAP_GROWSDOWN don't seem applicable to -@c user programs (and I don't understand the last two). MAP_LOCKED does +@c user programs (and I don't understand the last two). MAP_LOCKED does @c not appear to be implemented. @end vtable @@ -1405,14 +1405,14 @@ There is no existing mapping in at least part of the given region. This function can be used to change the size of an existing memory area. @var{address} and @var{length} must cover a region entirely mapped -in the same @code{mmap} statement. A new mapping with the same +in the same @code{mmap} statement. A new mapping with the same characteristics will be returned with the length @var{new_length}. -One option is possible, @code{MREMAP_MAYMOVE}. If it is given in +One option is possible, @code{MREMAP_MAYMOVE}. If it is given in @var{flags}, the system may remove the existing mapping and create a new one of the desired length in another location. -The address of the resulting mapping is returned, or @math{-1}. Possible +The address of the resulting mapping is returned, or @math{-1}. Possible error codes include: @table @code @@ -1464,11 +1464,11 @@ The valid BSD values for @var{advice} are: The region should receive no further special treatment. @item MADV_RANDOM -The region will be accessed via random page references. The kernel +The region will be accessed via random page references. The kernel should page-in the minimal number of pages for each page fault. @item MADV_SEQUENTIAL -The region will be accessed via sequential page references. This +The region will be accessed via sequential page references. This may cause the kernel to aggressively read-ahead, expecting further sequential references after any page fault within this region. @@ -1540,7 +1540,7 @@ There is no existing mapping in at least part of the given region. @c close dup @acsfd This function returns a file descriptor that can be used to allocate shared -memory via mmap. Unrelated processes can use same @var{name} to create or +memory via mmap. Unrelated processes can use same @var{name} to create or open existing shared memory objects. A @var{name} argument specifies the shared memory object to be opened. @@ -3899,7 +3899,7 @@ There is no process or process group corresponding to @var{pid}. @gnusystems{} can handle most input/output operations on many different devices and objects in terms of a few file primitives - @code{read}, @code{write} and @code{lseek}. However, most devices also have a few -peculiar operations which do not fit into this model. Such as: +peculiar operations which do not fit into this model. Such as: @itemize @bullet diff --git a/manual/locale.texi b/manual/locale.texi index 8bfd653..45f1e94 100644 --- a/manual/locale.texi +++ b/manual/locale.texi @@ -410,7 +410,7 @@ pointer and leaves the current locale unchanged. @end deftypefun The path used for finding locale data can be set using the -@code{LOCPATH} environment variable. The default path for finding +@code{LOCPATH} environment variable. The default path for finding locale data is system specific. It is computed from the value given as the prefix while configuring the C library. This value normally is @file{/usr} or @file{/}. For the former the complete path is: diff --git a/manual/maint.texi b/manual/maint.texi index 659ceae..862b49d 100644 --- a/manual/maint.texi +++ b/manual/maint.texi @@ -424,7 +424,7 @@ top level of the @file{sysdeps} directory tree. For example, files specific to those machine architectures, but not specific to any particular operating system. There might be subdirectories for specializations of those architectures, such as -@w{@file{sysdeps/m68k/68020}}. Code which is specific to the +@w{@file{sysdeps/m68k/68020}}. Code which is specific to the floating-point coprocessor used with a particular machine should go in @w{@file{sysdeps/@var{machine}/fpu}}. diff --git a/manual/math.texi b/manual/math.texi index a884cb7..206021c 100644 --- a/manual/math.texi +++ b/manual/math.texi @@ -800,7 +800,7 @@ or is very close to 0. It is well-defined for all other values of @deftypefunx {complex long double} clog10l (complex long double @var{z}) @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} These functions return the base 10 logarithm of the complex value -@var{z}. Mathematically, this corresponds to the value +@var{z}. Mathematically, this corresponds to the value @ifnottex @math{log (z) = log10 (cabs (z)) + I * carg (z)} diff --git a/manual/memory.texi b/manual/memory.texi index 4beb322..0729e70 100644 --- a/manual/memory.texi +++ b/manual/memory.texi @@ -1036,7 +1036,7 @@ There was insufficient memory available to satisfy the request. @end table -This function was introduced in POSIX 1003.1d. Although this function is +This function was introduced in POSIX 1003.1d. Although this function is superseded by @code{aligned_alloc}, it is more portable to older POSIX systems that do not support @w{ISO C11}. @end deftypefun @@ -1361,7 +1361,7 @@ memory consumption of the program. @defvar __memalign_hook The value of this variable is a pointer to function that @code{aligned_alloc}, @code{memalign}, @code{posix_memalign} and @code{valloc} use whenever they -are called. You should define this function to look like @code{aligned_alloc}; +are called. You should define this function to look like @code{aligned_alloc}; that is, like: @smallexample @@ -2492,7 +2492,7 @@ add_string (struct obstack *obstack, const char *ptr, int len) int room = obstack_room (obstack); if (room == 0) @{ - /* @r{Not enough room. Add one character slowly,} + /* @r{Not enough room. Add one character slowly,} @r{which may copy to a new chunk and make room.} */ obstack_1grow (obstack, *ptr++); len--; diff --git a/manual/message.texi b/manual/message.texi index 3e32481..b03a14a 100644 --- a/manual/message.texi +++ b/manual/message.texi @@ -1584,7 +1584,7 @@ for the @code{iconv_open} function, or a null pointer. If the @var{codeset} parameter is the null pointer, @code{bind_textdomain_codeset} returns the currently selected codeset -for the domain with the name @var{domainname}. It returns @code{NULL} if +for the domain with the name @var{domainname}. It returns @code{NULL} if no codeset has yet been selected. The @code{bind_textdomain_codeset} function can be used several times. diff --git a/manual/probes.texi b/manual/probes.texi index b064e33..7dd56d8 100644 --- a/manual/probes.texi +++ b/manual/probes.texi @@ -249,21 +249,21 @@ level of 32 implies 768 bits of precision in the mantissa. @deftp Probe slowexp_p6 (double @var{$arg1}, double @var{$arg2}) This probe is triggered when the @code{exp} function is called with an input that results in multiple precision computation with precision -6. Argument @var{$arg1} is the input value and @var{$arg2} is the +6. Argument @var{$arg1} is the input value and @var{$arg2} is the computed output. @end deftp @deftp Probe slowexp_p32 (double @var{$arg1}, double @var{$arg2}) This probe is triggered when the @code{exp} function is called with an input that results in multiple precision computation with precision -32. Argument @var{$arg1} is the input value and @var{$arg2} is the +32. Argument @var{$arg1} is the input value and @var{$arg2} is the computed output. @end deftp @deftp Probe slowpow_p10 (double @var{$arg1}, double @var{$arg2}, double @var{$arg3}, double @var{$arg4}) This probe is triggered when the @code{pow} function is called with inputs that result in multiple precision computation with precision -10. Arguments @var{$arg1} and @var{$arg2} are the input values, +10. Arguments @var{$arg1} and @var{$arg2} are the input values, @code{$arg3} is the value computed in the fast phase of the algorithm and @code{$arg4} is the final accurate value. @end deftp @@ -271,7 +271,7 @@ and @code{$arg4} is the final accurate value. @deftp Probe slowpow_p32 (double @var{$arg1}, double @var{$arg2}, double @var{$arg3}, double @var{$arg4}) This probe is triggered when the @code{pow} function is called with an input that results in multiple precision computation with precision -32. Arguments @var{$arg1} and @var{$arg2} are the input values, +32. Arguments @var{$arg1} and @var{$arg2} are the input values, @code{$arg3} is the value computed in the fast phase of the algorithm and @code{$arg4} is the final accurate value. @end deftp @@ -393,7 +393,7 @@ address that will be stored in the @code{jmp_buf}. @deftp Probe longjmp (void *@var{$arg1}, int @var{$arg2}, void *@var{$arg3}) This probe is triggered whenever @code{longjmp} or @code{siglongjmp} -is called. Argument @var{$arg1} is a pointer to the @code{jmp_buf} +is called. Argument @var{$arg1} is a pointer to the @code{jmp_buf} passed as the first argument of @code{longjmp} or @code{siglongjmp}, @var{$arg2} is the return value passed as the second argument of @code{longjmp} or @code{siglongjmp} and @var{$arg3} is a pointer to diff --git a/manual/resource.texi b/manual/resource.texi index b5f0c24..ce48113 100644 --- a/manual/resource.texi +++ b/manual/resource.texi @@ -1723,7 +1723,7 @@ running. This number is average over different periods of times @c it, closes it, without cancellation point, and calls strtod_l with @c the C locale to convert the strings to doubles. This function gets the 1, 5 and 15 minute load averages of the -system. The values are placed in @var{loadavg}. @code{getloadavg} will +system. The values are placed in @var{loadavg}. @code{getloadavg} will place at most @var{nelem} elements into the array but never more than three elements. The return value is the number of elements written to @var{loadavg}, or -1 on error. diff --git a/manual/signal.texi b/manual/signal.texi index 51f68b5..ac84c5e 100644 --- a/manual/signal.texi +++ b/manual/signal.texi @@ -2615,7 +2615,7 @@ The prototype for the @code{sigprocmask} function is in @file{signal.h}. Note that you must not use @code{sigprocmask} in multi-threaded processes, because each thread has its own signal mask and there is no single process -signal mask. According to POSIX, the behavior of @code{sigprocmask} in a +signal mask. According to POSIX, the behavior of @code{sigprocmask} in a multi-threaded process is ``unspecified''. Instead, use @code{pthread_sigmask}. @ifset linuxthreads diff --git a/manual/socket.texi b/manual/socket.texi index 6ee8201..1d9d527 100644 --- a/manual/socket.texi +++ b/manual/socket.texi @@ -742,7 +742,7 @@ features, and will eventually replace IPv4. To create a socket in the IPv4 Internet namespace, use the symbolic name @code{PF_INET} of this namespace as the @var{namespace} argument to @code{socket} or @code{socketpair}. For IPv6 addresses you need the -macro @code{PF_INET6}. These macros are defined in @file{sys/socket.h}. +macro @code{PF_INET6}. These macros are defined in @file{sys/socket.h}. @pindex sys/socket.h @comment sys/socket.h @@ -1110,7 +1110,7 @@ it in the @code{struct in_addr} that @var{addr} points to. This function converts the IPv4 Internet host address @var{name} from the standard numbers-and-dots notation into binary data. If the input is not valid, @code{inet_addr} returns @code{INADDR_NONE}. This is an -obsolete interface to @code{inet_aton}, described immediately above. It +obsolete interface to @code{inet_aton}, described immediately above. It is obsolete because @code{INADDR_NONE} is a valid address (255.255.255.255), and @code{inet_aton} provides a cleaner way to indicate error return. @@ -1126,8 +1126,8 @@ indicate error return. @c tolower dup @mtslocale @c isspace dup @mtslocale This function extracts the network number from the address @var{name}, -given in the standard numbers-and-dots notation. The returned address is -in host order. If the input is not valid, @code{inet_network} returns +given in the standard numbers-and-dots notation. The returned address is +in host order. If the input is not valid, @code{inet_network} returns @code{-1}. The function works only with traditional IPv4 class A, B and C network @@ -1419,7 +1419,7 @@ allows the caller to specify the desired address family (e.g.@: The @code{gethostbyaddr} function returns information about the host with Internet address @var{addr}. The parameter @var{addr} is not really a pointer to char - it can be a pointer to an IPv4 or an IPv6 -address. The @var{length} argument is the size (in bytes) of the address +address. The @var{length} argument is the size (in bytes) of the address at @var{addr}. @var{format} specifies the address format; for an IPv4 Internet address, specify a value of @code{AF_INET}; for an IPv6 Internet address, use @code{AF_INET6}. @@ -1550,15 +1550,15 @@ pointer and the size of the buffer in the @var{buf} and @var{buflen} parameters. A pointer to the buffer, in which the result is stored, is available in -@code{*@var{result}} after the function call successfully returned. The +@code{*@var{result}} after the function call successfully returned. The buffer passed as the @var{buf} parameter can be freed only once the caller has finished with the result hostent struct, or has copied it including all -the other memory that it points to. If an error occurs or if no entry is -found, the pointer @code{*@var{result}} is a null pointer. Success is +the other memory that it points to. If an error occurs or if no entry is +found, the pointer @code{*@var{result}} is a null pointer. Success is signalled by a zero return value. If the function failed the return value is an error number. In addition to the errors defined for -@code{gethostbyname} it can also be @code{ERANGE}. In this case the call -should be repeated with a larger buffer. Additional error information is +@code{gethostbyname} it can also be @code{ERANGE}. In this case the call +should be repeated with a larger buffer. Additional error information is not stored in the global variable @code{h_errno} but instead in the object pointed to by @var{h_errnop}. @@ -1634,7 +1634,7 @@ allows the caller to specify the desired address family (e.g.@: The @code{gethostbyaddr_r} function returns information about the host with Internet address @var{addr}. The parameter @var{addr} is not really a pointer to char - it can be a pointer to an IPv4 or an IPv6 -address. The @var{length} argument is the size (in bytes) of the address +address. The @var{length} argument is the size (in bytes) of the address at @var{addr}. @var{format} specifies the address format; for an IPv4 Internet address, specify a value of @code{AF_INET}; for an IPv6 Internet address, use @code{AF_INET6}. diff --git a/manual/stdio.texi b/manual/stdio.texi index 1161a9a..a4364f7 100644 --- a/manual/stdio.texi +++ b/manual/stdio.texi @@ -541,7 +541,7 @@ another thread. @deftypefun void funlockfile (FILE *@var{stream}) @safety{@prelim{}@mtsafe{}@assafe{}@acunsafe{@aculock{}}} The @code{funlockfile} function releases the internal locking object of -the stream @var{stream}. The stream must have been locked before by a +the stream @var{stream}. The stream must have been locked before by a call to @code{flockfile} or a successful call of @code{ftrylockfile}. The implicit locking performed by the stream operations do not count. The @code{funlockfile} function does not return an error status and the @@ -2547,7 +2547,7 @@ address of a @code{char *} object, and a successful call to location. The return value is the number of characters allocated for the buffer, or -less than zero if an error occurred. Usually this means that the buffer +less than zero if an error occurred. Usually this means that the buffer could not be allocated. Here is how to use @code{asprintf} to get the same result as the diff --git a/manual/string.texi b/manual/string.texi index 6dcd4af..4437ddd 100644 --- a/manual/string.texi +++ b/manual/string.texi @@ -1308,7 +1308,7 @@ we find a digit in each string - then we enter a special comparison mode, where each sequence of digits is taken as a whole. If we reach the end of these two parts without noticing a difference, we return to the standard comparison mode. There are two types of numeric parts: -"integral" and "fractional" (those begin with a '0'). The types +"integral" and "fractional" (those begin with a '0'). The types of the numeric parts affect the way we sort them: @itemize @bullet @@ -2260,7 +2260,7 @@ on different systems. @comment XPG @deftypefun {char *} basename (const char *@var{path}) @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} -This is the standard XPG defined @code{basename}. It is similar in +This is the standard XPG defined @code{basename}. It is similar in spirit to the GNU version, but may modify the @var{path} by removing trailing '/' characters. If the @var{path} is made up entirely of '/' characters, then "/" will be returned. Also, if @var{path} is diff --git a/manual/time.texi b/manual/time.texi index d46d2c8..d6085ed 100644 --- a/manual/time.texi +++ b/manual/time.texi @@ -1335,7 +1335,7 @@ Ordinary characters appearing in the @var{template} are copied to the output string @var{s}; this can include multibyte character sequences. Conversion specifiers are introduced by a @samp{%} character, followed by an optional flag which can be one of the following. These flags -are all GNU extensions. The first three affect only the output of +are all GNU extensions. The first three affect only the output of numbers: @table @code diff --git a/manual/users.texi b/manual/users.texi index 93b25eb..a14a256 100644 --- a/manual/users.texi +++ b/manual/users.texi @@ -71,7 +71,7 @@ in a data base which you can access as described in @ref{User Database}. @cindex group ID Users are classified in @dfn{groups}. Each user name belongs to one @dfn{default group} and may also belong to any number of -@dfn{supplementary groups}. Users who are members of the same group can +@dfn{supplementary groups}. Users who are members of the same group can share resources (such as files) that are not accessible to users who are not a member of that group. Each group has a @dfn{group name} and @dfn{group ID}. @xref{Group Database}, for how to find information @@ -830,7 +830,7 @@ special user. Be cautious about using the @code{exec} functions in combination with changing the effective user ID. Don't let users of your program execute arbitrary programs under a changed user ID. Executing a shell is -especially bad news. Less obviously, the @code{execlp} and @code{execvp} +especially bad news. Less obviously, the @code{execlp} and @code{execvp} functions are a potential risk (since the program they execute depends on the user's @code{PATH} environment variable). |