diff options
Diffstat (limited to 'libtac')
-rw-r--r-- | libtac/include/libtac.h | 12 | ||||
-rw-r--r-- | libtac/lib/author_r.c | 1 | ||||
-rw-r--r-- | libtac/lib/magic.c | 10 |
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 /* |