Fix gcc warning "ignoring return value of ..."

This patch fixes two warnings of gcc 4.4.3 when used with eglibc 2.11.1:

ngircd.c: In function ‘NGIRCd_Init’:
ngircd.c:801: warning: ignoring return value of ‘chdir’, declared with
 attribute warn_unused_result
conn.c: In function ‘Simple_Message’:
conn.c:2041: warning: ignoring return value of ‘write’, declared with
 attribute warn_unused_result

The first by checking the return code and an appropriate error message,
the second by "better" ignoring it (which is correct there!) ...
This commit is contained in:
Alexander Barton 2010-04-09 20:08:47 +02:00
parent 628c6c962b
commit 025342fe46
2 changed files with 24 additions and 10 deletions

View File

@ -2025,20 +2025,32 @@ cb_Read_Resolver_Result( int r_fd, UNUSED short events )
} /* cb_Read_Resolver_Result */
/**
* Write a "simple" (error) message to a socket.
* The message is sent without using the connection write buffers, without
* compression/encryption, and even without any error reporting. It is
* designed for error messages of e.g. New_Connection(). */
static void
Simple_Message( int Sock, const char *Msg )
Simple_Message(int Sock, const char *Msg)
{
char buf[COMMAND_LEN];
size_t len;
/* Write "simple" message to socket, without using compression
* or even the connection write buffers. Used e.g. for error
* messages by New_Connection(). */
assert( Sock > NONE );
assert( Msg != NULL );
strlcpy( buf, Msg, sizeof buf - 2);
len = strlcat( buf, "\r\n", sizeof buf);
(void)write(Sock, buf, len);
assert(Sock > NONE);
assert(Msg != NULL);
strlcpy(buf, Msg, sizeof buf - 2);
len = strlcat(buf, "\r\n", sizeof buf);
if (write(Sock, buf, len) < 0) {
/* Because this function most probably got called to log
* an error message, any write error is ignored here to
* avoid an endless loop. But casting the result of write()
* to "void" doesn't satisfy the GNU C code attribute
* "warn_unused_result" which is used by some versions of
* glibc (e.g. 2.11.1), therefore this silly error
* "handling" code here :-( */
return;
}
} /* Simple_Error */

View File

@ -798,7 +798,9 @@ NGIRCd_Init( bool NGIRCd_NoDaemon )
#else
setpgrp(0, getpid());
#endif
chdir( "/" );
if (chdir( "/" ) != 0)
Log(LOG_ERR, "Can't change directory to '/': %s",
strerror(errno));
/* Detach stdin, stdout and stderr */
Setup_FDStreams( );