[git] GnuPG - branch, master, updated. gnupg-2.1.15-292-g8b3d0d1
by NIIBE Yutaka
cvs at cvs.gnupg.org
Thu Oct 27 09:02:23 CEST 2016
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "The GNU Privacy Guard".
The branch, master has been updated
via 8b3d0d1a36cab83dafb98ccb7895144edb95e298 (commit)
from 6f1d8123d61b3efac94b4c61ee75bd947790ba42 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 8b3d0d1a36cab83dafb98ccb7895144edb95e298
Author: NIIBE Yutaka <gniibe at fsij.org>
Date: Thu Oct 27 15:37:47 2016 +0900
common: Fix gnupg_inotify_has_name, differently.
* common/sysutils.c (gnupg_inotify_has_name): Use void * to stop the
warning.
--
According to the man page of inotify(7), it is aligned by null bytes.
So, bc28f320fa6f5b9fcdb73dba5e6c582daf7992c5 is reverted.
Signed-off-by: NIIBE Yutaka <gniibe at fsij.org>
diff --git a/common/sysutils.c b/common/sysutils.c
index 71200a6..0f87a42 100644
--- a/common/sysutils.c
+++ b/common/sysutils.c
@@ -1041,47 +1041,41 @@ gnupg_inotify_has_name (int fd, const char *name)
{
#if USE_NPTH && HAVE_INOTIFY_INIT
#define BUFSIZE_FOR_INOTIFY (sizeof (struct inotify_event) + 255 + 1)
- char buf[BUFSIZE_FOR_INOTIFY];
- char *p;
+ union {
+ struct inotify_event ev;
+ char _buf[sizeof (struct inotify_event) + 255 + 1];
+ } buf;
+ struct inotify_event *evp;
int n;
- n = npth_read (fd, buf, sizeof buf);
- p = buf;
+ n = npth_read (fd, &buf, sizeof buf);
/* log_debug ("notify read: n=%d\n", n); */
+ evp = &buf.ev;
while (n >= sizeof (struct inotify_event))
{
- struct inotify_event ev;
- const char *ev_name;
-
- memcpy (&ev, p, sizeof (struct inotify_event));
-
- if (ev.len > 255 + 1) /* Something goes wrong, skip this data. */
- break;
-
- ev_name = p + sizeof (struct inotify_event);
- p += sizeof (struct inotify_event) + ev.len;
- n -= sizeof (struct inotify_event) + ev.len;
-
/* log_debug (" mask=%x len=%u name=(%s)\n", */
- /* ev.mask, (unsigned int)ev.len, ev.len? ev.name:""); */
- if ((ev.mask & IN_UNMOUNT))
+ /* evp->mask, (unsigned int)evp->len, evp->len? evp->name:""); */
+ if ((evp->mask & IN_UNMOUNT))
{
/* log_debug (" found (dir unmounted)\n"); */
return 3; /* Directory was unmounted. */
}
- if ((ev.mask & IN_DELETE_SELF))
+ if ((evp->mask & IN_DELETE_SELF))
{
/* log_debug (" found (dir removed)\n"); */
return 2; /* Directory was removed. */
}
- if ((ev.mask & IN_DELETE))
+ if ((evp->mask & IN_DELETE))
{
- if (ev.len >= strlen (name) && !strcmp (ev_name, name))
+ if (evp->len >= strlen (name) && !strcmp (evp->name, name))
{
/* log_debug (" found (file removed)\n"); */
return 1; /* File was removed. */
}
}
+ n -= sizeof (*evp) + evp->len;
+ evp = (struct inotify_event *)(void *)
+ ((char *)evp + sizeof (*evp) + evp->len);
}
#else /*!(USE_NPTH && HAVE_INOTIFY_INIT)*/
-----------------------------------------------------------------------
Summary of changes:
common/sysutils.c | 36 +++++++++++++++---------------------
1 file changed, 15 insertions(+), 21 deletions(-)
hooks/post-receive
--
The GNU Privacy Guard
http://git.gnupg.org
More information about the Gnupg-commits
mailing list