]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
main/stdtime/localtime: Fix warning introduced in r433720
authorMatthew Jordan <mjordan@digium.com>
Mon, 30 Mar 2015 02:29:10 +0000 (02:29 +0000)
committerMatthew Jordan <mjordan@digium.com>
Mon, 30 Mar 2015 02:29:10 +0000 (02:29 +0000)
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
........

Merged revisions 433743 from http://svn.asterisk.org/svn/asterisk/branches/11

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433744 65c4cc65-6c06-0410-ace0-fbb531ad65f3

main/stdtime/localtime.c

index 2cd5003d133f237406fce9c8af3bf1aee14262c4..4b005207e6a0bbd8d0f8069a4fb0a3d0d23ee0d8 100644 (file)
@@ -377,7 +377,7 @@ static void *inotify_daemon(void *data)
 
        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;