summaryrefslogtreecommitdiff
path: root/libtac
diff options
context:
space:
mode:
Diffstat (limited to 'libtac')
-rw-r--r--libtac/include/libtac.h12
-rw-r--r--libtac/lib/author_r.c1
-rw-r--r--libtac/lib/magic.c10
3 files changed, 20 insertions, 3 deletions
diff --git a/libtac/include/libtac.h b/libtac/include/libtac.h
index c872ff7..23cdc28 100644
--- a/libtac/include/libtac.h
+++ b/libtac/include/libtac.h
@@ -44,6 +44,18 @@ extern "C" {
#endif
#include "tacplus.h"
+#if defined(__clang__)
+#define __CLANG_PREREQ(maj, min) ((__clang_major__ > (maj)) || (__clang_major__ == (maj) && __clang_minor__ >= (min)))
+#else
+#define __CLANG_PREREQ(maj, min) (0)
+#endif
+
+#if __GNUC_PREREQ(3, 2) || __CLANG_PREREQ(4, 0)
+#define __Unused __attribute__ ((unused))
+#else
+#define __Unused /* unused */
+#endif
+
#if defined(DEBUGTAC) && !defined(TACDEBUG)
# ifdef __GNUC__
#define TACDEBUG(level, fmt, ...) syslog(level, fmt, ## __VA_ARGS__)
diff --git a/libtac/lib/author_r.c b/libtac/lib/author_r.c
index 148f7ea..fa101e6 100644
--- a/libtac/lib/author_r.c
+++ b/libtac/lib/author_r.c
@@ -187,6 +187,7 @@ int tac_author_read(int fd, struct areply *re) {
/* XXX support optional vs mandatory arguments */
case TAC_PLUS_AUTHOR_STATUS_PASS_REPL:
tac_free_attrib(&re->attr);
+ /*FALLTHRU*/
case TAC_PLUS_AUTHOR_STATUS_PASS_ADD: {
u_char *argp;
diff --git a/libtac/lib/magic.c b/libtac/lib/magic.c
index a320df5..97aa035 100644
--- a/libtac/lib/magic.c
+++ b/libtac/lib/magic.c
@@ -63,17 +63,21 @@ magic()
{
u_int32_t num;
+#ifdef HAVE_RAND_BYTES
+ RAND_bytes((unsigned char *)&num, sizeof(num));
+#else
RAND_pseudo_bytes((unsigned char *)&num, sizeof(num));
+#endif
return num;
}
#elif defined(HAVE_GETRANDOM)
-# if defined(HAVE_LINUX_RANDOM_H)
-# include <linux/random.h>
-# elif defined(HAVE_SYS_RANDOM_H)
+# if defined(HAVE_SYS_RANDOM_H)
# include <sys/random.h>
+# else
+# error no header containing getrandom(2) declaration
# endif
/*