diff options
author | Shawn Paul Landden <shawn@churchofgit.com> | 2014-12-23 13:47:16 -0800 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2014-12-24 16:53:04 +0100 |
commit | 0254e9448f3c645758ed63618a3bbb13c242f5e7 (patch) | |
tree | 14259bc9ac0bd2ae5154278c87dc0b8cb886bf73 /src/core | |
parent | 60329a9d9fc58b1a4c8a6244592f731839c2e8d7 (diff) |
util: fix strict aliasing violations in use of struct inotify_event v5
There is alot of cleanup that will have to happen to turn on
-fstrict-aliasing, but I think our code should be "correct" to the rule.
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/mount.c | 4 | ||||
-rw-r--r-- | src/core/path.c | 4 |
2 files changed, 4 insertions, 4 deletions
diff --git a/src/core/mount.c b/src/core/mount.c index f8731bb8b9..110eafdc49 100644 --- a/src/core/mount.c +++ b/src/core/mount.c @@ -1701,11 +1701,11 @@ static int mount_dispatch_io(sd_event_source *source, int fd, uint32_t revents, * internal behaviour of libmount here. */ for (;;) { - uint8_t buffer[INOTIFY_EVENT_MAX] _alignas_(struct inotify_event); + union inotify_event_buffer buffer; struct inotify_event *e; ssize_t l; - l = read(fd, buffer, sizeof(buffer)); + l = read(fd, &buffer, sizeof(buffer)); if (l < 0) { if (errno == EAGAIN || errno == EINTR) break; diff --git a/src/core/path.c b/src/core/path.c index 656ed6941d..0fdf48380b 100644 --- a/src/core/path.c +++ b/src/core/path.c @@ -157,7 +157,7 @@ void path_spec_unwatch(PathSpec *s) { } int path_spec_fd_event(PathSpec *s, uint32_t revents) { - uint8_t buffer[INOTIFY_EVENT_MAX] _alignas_(struct inotify_event); + union inotify_event_buffer buffer; struct inotify_event *e; ssize_t l; int r = 0; @@ -167,7 +167,7 @@ int path_spec_fd_event(PathSpec *s, uint32_t revents) { return -EINVAL; } - l = read(s->inotify_fd, buffer, sizeof(buffer)); + l = read(s->inotify_fd, &buffer, sizeof(buffer)); if (l < 0) { if (errno == EAGAIN || errno == EINTR) return 0; |