Some versions of the HP C Compiler don't export functions that take

function pointers as arguments unless a typedef is used.
This commit is contained in:
Todd C. Miller
2014-08-31 18:33:30 -06:00
parent 73d5fb33e7
commit a07ce849f7
4 changed files with 11 additions and 6 deletions

View File

@@ -112,10 +112,13 @@
} while (0) } while (0)
#endif /* SUDO_ERROR_WRAP */ #endif /* SUDO_ERROR_WRAP */
/* XXX - move to sudo_util.h */
extern int (*sudo_printf)(int msg_type, const char *fmt, ...); extern int (*sudo_printf)(int msg_type, const char *fmt, ...);
__dso_public int sudo_fatal_callback_deregister_v1(void (*func)(void)); typedef void (*sudo_fatal_callback_t)(void);
__dso_public int sudo_fatal_callback_register_v1(void (*func)(void));
__dso_public int sudo_fatal_callback_deregister_v1(sudo_fatal_callback_t func);
__dso_public int sudo_fatal_callback_register_v1(sudo_fatal_callback_t func);
__dso_public char *sudo_warn_gettext_v1(const char *msgid) __format_arg(1); __dso_public char *sudo_warn_gettext_v1(const char *msgid) __format_arg(1);
__dso_public char *sudo_warn_strerror_v1(int errnum); __dso_public char *sudo_warn_strerror_v1(int errnum);
__dso_public void sudo_fatal_nodebug_v1(const char *, ...) __printf0like(1, 2) __attribute__((__noreturn__)); __dso_public void sudo_fatal_nodebug_v1(const char *, ...) __printf0like(1, 2) __attribute__((__noreturn__));

View File

@@ -33,7 +33,9 @@ struct sudo_lbuf {
int cols; int cols;
}; };
__dso_public void sudo_lbuf_init_v1(struct sudo_lbuf *lbuf, int (*output)(const char *), int indent, const char *continuation, int cols); typedef int (*sudo_lbuf_output_t)(const char *);
__dso_public void sudo_lbuf_init_v1(struct sudo_lbuf *lbuf, sudo_lbuf_output_t output, int indent, const char *continuation, int cols);
__dso_public void sudo_lbuf_destroy_v1(struct sudo_lbuf *lbuf); __dso_public void sudo_lbuf_destroy_v1(struct sudo_lbuf *lbuf);
__dso_public void sudo_lbuf_append_v1(struct sudo_lbuf *lbuf, const char *fmt, ...) __printflike(2, 3); __dso_public void sudo_lbuf_append_v1(struct sudo_lbuf *lbuf, const char *fmt, ...) __printflike(2, 3);
__dso_public void sudo_lbuf_append_quoted_v1(struct sudo_lbuf *lbuf, const char *set, const char *fmt, ...) __printflike(3, 4); __dso_public void sudo_lbuf_append_quoted_v1(struct sudo_lbuf *lbuf, const char *set, const char *fmt, ...) __printflike(3, 4);

View File

@@ -158,7 +158,7 @@ _warning(int errnum, const char *fmt, va_list ap)
* Register a callback to be run when sudo_fatal()/sudo_fatalx() is called. * Register a callback to be run when sudo_fatal()/sudo_fatalx() is called.
*/ */
int int
sudo_fatal_callback_register_v1(void (*func)(void)) sudo_fatal_callback_register_v1(sudo_fatal_callback_t func)
{ {
struct sudo_fatal_callback *cb; struct sudo_fatal_callback *cb;
@@ -182,7 +182,7 @@ sudo_fatal_callback_register_v1(void (*func)(void))
* Deregister a sudo_fatal()/sudo_fatalx() callback. * Deregister a sudo_fatal()/sudo_fatalx() callback.
*/ */
int int
sudo_fatal_callback_deregister_v1(void (*func)(void)) sudo_fatal_callback_deregister_v1(sudo_fatal_callback_t func)
{ {
struct sudo_fatal_callback *cb, **prev; struct sudo_fatal_callback *cb, **prev;

View File

@@ -48,7 +48,7 @@
#include "sudo_lbuf.h" #include "sudo_lbuf.h"
void void
sudo_lbuf_init_v1(struct sudo_lbuf *lbuf, int (*output)(const char *), sudo_lbuf_init_v1(struct sudo_lbuf *lbuf, sudo_lbuf_output_t output,
int indent, const char *continuation, int cols) int indent, const char *continuation, int cols)
{ {
debug_decl(sudo_lbuf_init, SUDO_DEBUG_UTIL) debug_decl(sudo_lbuf_init, SUDO_DEBUG_UTIL)