summaryrefslogtreecommitdiff
path: root/src/libudev/util.h
diff options
context:
space:
mode:
authorDave Reisner <dreisner@archlinux.org>2014-04-26 14:06:06 -0400
committerAnthony G. Basile <blueness@gentoo.org>2014-04-26 14:06:06 -0400
commitc59a37701bf49dbcba2297e7507d62ee05d9c916 (patch)
tree6f5debb4983def80f9d99b43f05c25d7384bdae5 /src/libudev/util.h
parent48255c443bafc746eba3461d2ecd70121859a397 (diff)
implement a union to pad out file_handle
Cases where name_to_handle_at is used allocated the full struct to be MAX_HANDLE_SZ, and assigned this size to handle_bytes. This is wrong since handle_bytes should describe the length of the flexible array member and not the whole struct. Define a union type which includes sufficient padding to allow assignment of MAX_HANDLE_SZ to be correct. Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
Diffstat (limited to 'src/libudev/util.h')
-rw-r--r--src/libudev/util.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/libudev/util.h b/src/libudev/util.h
index 6510237e1e..4efa4e062a 100644
--- a/src/libudev/util.h
+++ b/src/libudev/util.h
@@ -19,6 +19,7 @@
#pragma once
+#include <fcntl.h>
#include <string.h>
#include <time.h>
#include <stdlib.h>
@@ -300,3 +301,8 @@ static inline void qsort_safe(void *base, size_t nmemb, size_t size,
int proc_cmdline(char **ret);
int getpeercred(int fd, struct ucred *ucred);
+
+union file_handle_union {
+ struct file_handle handle;
+ char padding[sizeof(struct file_handle) + MAX_HANDLE_SZ];
+};