[asterisk-commits] mjordan: branch 11 r433743 - /branches/11/main/stdtime/localtime.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Sun Mar 29 21:28:49 CDT 2015


Author: mjordan
Date: Sun Mar 29 21:28:47 2015
New Revision: 433743

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=433743
Log:
main/stdtime/localtime: Fix warning introduced in r433720

The patch in r433720 caused a warning to be kicked back by gcc. It occurred
due to this check in unistd.h:

    if (__nbytes > __bos0 (__buf))
        return __read_chk_warn (__fd, __buf, __nbytes, __bos0 (__buf));

That is, if __nbytes is greater than the result of GCC's built-in object size
for the struct, we'll kick back a warning.

As it turns out, this is because there is an error in the code in the patch.
We are passing the address of the pointer to the struct, not iev, which is a
pointer to the struct. Hence, the number of bytes is probably going to be lot
larger than the number of bytes that make up a pointer! This patch changes
the code just read from the pointer to the struct - which fixes the warning.

ASTERISK-24917

Modified:
    branches/11/main/stdtime/localtime.c

Modified: branches/11/main/stdtime/localtime.c
URL: http://svnview.digium.com/svn/asterisk/branches/11/main/stdtime/localtime.c?view=diff&rev=433743&r1=433742&r2=433743
==============================================================================
--- branches/11/main/stdtime/localtime.c (original)
+++ branches/11/main/stdtime/localtime.c Sun Mar 29 21:28:47 2015
@@ -377,7 +377,7 @@
 
 	for (;/*ever*/;) {
 		/* This read should block, most of the time. */
-		if ((res = read(inotify_fd, &iev, real_sizeof_iev)) < sizeof(*iev) && res > 0) {
+		if ((res = read(inotify_fd, iev, real_sizeof_iev)) < sizeof(*iev) && res > 0) {
 			/* This should never happen */
 			ast_log(LOG_ERROR, "Inotify read less than a full event (%zd < %zu)?!!\n", res, sizeof(*iev));
 			break;




More information about the asterisk-commits mailing list