Version the functions in libsudo_util

This commit is contained in:
Todd C. Miller
2014-07-22 11:26:17 -06:00
parent 127ba1354b
commit 844a285391
29 changed files with 346 additions and 268 deletions

View File

@@ -24,8 +24,10 @@
#define SUDO_PATH_WORLD_WRITABLE -4 #define SUDO_PATH_WORLD_WRITABLE -4
#define SUDO_PATH_GROUP_WRITABLE -5 #define SUDO_PATH_GROUP_WRITABLE -5
__dso_public int sudo_secure_dir(const char *path, uid_t uid, gid_t gid, struct stat *sbp); __dso_public int sudo_secure_dir_v1(const char *path, uid_t uid, gid_t gid, struct stat *sbp);
__dso_public int sudo_secure_file(const char *path, uid_t uid, gid_t gid, struct stat *sbp); __dso_public int sudo_secure_file_v1(const char *path, uid_t uid, gid_t gid, struct stat *sbp);
__dso_public int sudo_secure_path(const char *path, unsigned int type, uid_t uid, gid_t gid, struct stat *sbp);
#define sudo_secure_dir(_a, _b, _c, _d) sudo_secure_dir_v1((_a), (_b), (_c), (_d))
#define sudo_secure_file(_a, _b, _c, _d) sudo_secure_file_v1((_a), (_b), (_c), (_d))
#endif /* _SUDO_SECURE_PATH_H */ #endif /* _SUDO_SECURE_PATH_H */

View File

@@ -23,15 +23,26 @@
#undef sudo_efree #undef sudo_efree
#define sudo_efree(x) free((void *)(x)) #define sudo_efree(x) free((void *)(x))
__dso_public int sudo_easprintf(char **, const char *, ...) __printflike(2, 3); __dso_public int sudo_easprintf_v1(char **, const char *, ...) __printflike(2, 3);
__dso_public int sudo_evasprintf(char **, const char *, va_list) __printflike(2, 0); __dso_public int sudo_evasprintf_v1(char **, const char *, va_list) __printflike(2, 0);
__dso_public void *sudo_ecalloc(size_t, size_t) __malloc_like; __dso_public void *sudo_ecalloc_v1(size_t, size_t) __malloc_like;
__dso_public void *sudo_emalloc(size_t) __malloc_like; __dso_public void *sudo_emalloc_v1(size_t) __malloc_like;
__dso_public void *sudo_emallocarray(size_t, size_t) __malloc_like; __dso_public void *sudo_emallocarray_v1(size_t, size_t) __malloc_like;
__dso_public void *sudo_erealloc(void *, size_t); __dso_public void *sudo_erealloc_v1(void *, size_t);
__dso_public void *sudo_ereallocarray(void *, size_t, size_t); __dso_public void *sudo_ereallocarray_v1(void *, size_t, size_t);
__dso_public void *sudo_erecalloc(void *, size_t, size_t, size_t); __dso_public void *sudo_erecalloc_v1(void *, size_t, size_t, size_t);
__dso_public char *sudo_estrdup(const char *) __malloc_like; __dso_public char *sudo_estrdup_v1(const char *) __malloc_like;
__dso_public char *sudo_estrndup(const char *, size_t) __malloc_like; __dso_public char *sudo_estrndup_v1(const char *, size_t) __malloc_like;
#define sudo_easprintf sudo_easprintf_v1
#define sudo_evasprintf(_a, _b, _c) sudo_evasprintf_v1((_a), (_b), (_c))
#define sudo_ecalloc(_a, _b) sudo_ecalloc_v1((_a), (_b))
#define sudo_emalloc(_a) sudo_emalloc_v1((_a))
#define sudo_emallocarray(_a, _b) sudo_emallocarray_v1((_a), (_b))
#define sudo_erealloc(_a, _b) sudo_erealloc_v1((_a), (_b))
#define sudo_ereallocarray(_a, _b, _c) sudo_ereallocarray_v1((_a), (_b), (_c))
#define sudo_erecalloc(_a, _b, _c, _d) sudo_erecalloc_v1((_a), (_b), (_c), (_d))
#define sudo_estrdup(_a) sudo_estrdup_v1((_a))
#define sudo_estrndup(_a, _b) sudo_estrndup_v1((_a), (_b))
#endif /* _SUDO_ALLOC_H */ #endif /* _SUDO_ALLOC_H */

View File

@@ -33,18 +33,29 @@ struct plugin_info {
TAILQ_HEAD(plugin_info_list, plugin_info); TAILQ_HEAD(plugin_info_list, plugin_info);
/* Read main sudo.conf file. */ /* Read main sudo.conf file. */
__dso_public void sudo_conf_read(const char *); __dso_public void sudo_conf_read_v1(const char *conf_file);
#define sudo_conf_read(_a) sudo_conf_read_v1((_a))
/* Accessor functions. */ /* Accessor functions. */
__dso_public const char *sudo_conf_askpass_path(void); __dso_public const char *sudo_conf_askpass_path_v1(void);
__dso_public const char *sudo_conf_sesh_path(void); __dso_public const char *sudo_conf_sesh_path_v1(void);
__dso_public const char *sudo_conf_noexec_path(void); __dso_public const char *sudo_conf_noexec_path_v1(void);
__dso_public const char *sudo_conf_plugin_dir_path(void); __dso_public const char *sudo_conf_plugin_dir_path_v1(void);
__dso_public const char *sudo_conf_debug_flags(void); __dso_public const char *sudo_conf_debug_flags_v1(void);
__dso_public struct plugin_info_list *sudo_conf_plugins(void); __dso_public struct plugin_info_list *sudo_conf_plugins_v1(void);
__dso_public bool sudo_conf_disable_coredump(void); __dso_public bool sudo_conf_disable_coredump_v1(void);
__dso_public bool sudo_conf_probe_interfaces(void); __dso_public bool sudo_conf_probe_interfaces_v1(void);
__dso_public int sudo_conf_group_source(void); __dso_public int sudo_conf_group_source_v1(void);
__dso_public int sudo_conf_max_groups(void); __dso_public int sudo_conf_max_groups_v1(void);
#define sudo_conf_askpass_path() sudo_conf_askpass_path_v1()
#define sudo_conf_sesh_path() sudo_conf_sesh_path_v1()
#define sudo_conf_noexec_path() sudo_conf_noexec_path_v1()
#define sudo_conf_plugin_dir_path() sudo_conf_plugin_dir_path_v1()
#define sudo_conf_debug_flags() sudo_conf_debug_flags_v1()
#define sudo_conf_plugins() sudo_conf_plugins_v1()
#define sudo_conf_disable_coredump() sudo_conf_disable_coredump_v1()
#define sudo_conf_probe_interfaces() sudo_conf_probe_interfaces_v1()
#define sudo_conf_group_source() sudo_conf_group_source_v1()
#define sudo_conf_max_groups() sudo_conf_max_groups_v1()
#endif /* _SUDO_CONF_H */ #endif /* _SUDO_CONF_H */

View File

@@ -40,10 +40,16 @@ struct sudo_preload_table {
}; };
/* Public functions. */ /* Public functions. */
__dso_public char *sudo_dso_strerror(void); __dso_public char *sudo_dso_strerror_v1(void);
__dso_public int sudo_dso_unload(void *handle); __dso_public int sudo_dso_unload_v1(void *handle);
__dso_public void *sudo_dso_findsym(void *handle, const char *symbol); __dso_public void *sudo_dso_findsym_v1(void *handle, const char *symbol);
__dso_public void *sudo_dso_load(const char *path, int mode); __dso_public void *sudo_dso_load_v1(const char *path, int mode);
__dso_public void sudo_dso_preload_table(struct sudo_preload_table *table); __dso_public void sudo_dso_preload_table_v1(struct sudo_preload_table *table);
#define sudo_dso_strerror() sudo_dso_strerror_v1()
#define sudo_dso_unload(_a) sudo_dso_unload_v1((_a))
#define sudo_dso_findsym(_a, _b) sudo_dso_findsym_v1((_a), (_b))
#define sudo_dso_load(_a, _b) sudo_dso_load_v1((_a), (_b))
#define sudo_dso_preload_table(_a) sudo_dso_preload_table_v1((_a))
#endif /* _SUDO_DSO_H */ #endif /* _SUDO_DSO_H */

View File

@@ -83,43 +83,56 @@ struct sudo_event_base {
}; };
/* Allocate a new event base. */ /* Allocate a new event base. */
__dso_public struct sudo_event_base *sudo_ev_base_alloc(void); __dso_public struct sudo_event_base *sudo_ev_base_alloc_v1(void);
#define sudo_ev_base_alloc() sudo_ev_base_alloc_v1()
/* Free an event base. */ /* Free an event base. */
__dso_public void sudo_ev_base_free(struct sudo_event_base *base); __dso_public void sudo_ev_base_free_v1(struct sudo_event_base *base);
#define sudo_ev_base_free(_a) sudo_ev_base_free_v1((_a))
/* Allocate a new event. */ /* Allocate a new event. */
__dso_public struct sudo_event *sudo_ev_alloc(int fd, short events, sudo_ev_callback_t callback, void *closure); __dso_public struct sudo_event *sudo_ev_alloc_v1(int fd, short events, sudo_ev_callback_t callback, void *closure);
#define sudo_ev_alloc(_a, _b, _c, _d) sudo_ev_alloc_v1((_a), (_b), (_c), (_d))
/* Free an event. */ /* Free an event. */
__dso_public void sudo_ev_free(struct sudo_event *ev); __dso_public void sudo_ev_free_v1(struct sudo_event *ev);
#define sudo_ev_free(_a) sudo_ev_free_v1((_a))
/* Add an event, returns 0 on success, -1 on error */ /* Add an event, returns 0 on success, -1 on error */
__dso_public int sudo_ev_add(struct sudo_event_base *head, struct sudo_event *ev, struct timeval *timo, bool tohead); __dso_public int sudo_ev_add_v1(struct sudo_event_base *head, struct sudo_event *ev, struct timeval *timo, bool tohead);
#define sudo_ev_add(_a, _b, _c, _d) sudo_ev_add_v1((_a), (_b), (_c), (_d))
/* Delete an event, returns 0 on success, -1 on error */ /* Delete an event, returns 0 on success, -1 on error */
__dso_public int sudo_ev_del(struct sudo_event_base *head, struct sudo_event *ev); __dso_public int sudo_ev_del_v1(struct sudo_event_base *head, struct sudo_event *ev);
#define sudo_ev_del(_a, _b) sudo_ev_del_v1((_a), (_b))
/* Main event loop, returns SUDO_CB_SUCCESS, SUDO_CB_BREAK or SUDO_CB_ERROR */ /* Main event loop, returns SUDO_CB_SUCCESS, SUDO_CB_BREAK or SUDO_CB_ERROR */
__dso_public int sudo_ev_loop(struct sudo_event_base *head, int flags); __dso_public int sudo_ev_loop_v1(struct sudo_event_base *head, int flags);
#define sudo_ev_loop(_a, _b) sudo_ev_loop_v1((_a), (_b))
/* Return the remaining timeout associated with an event. */ /* Return the remaining timeout associated with an event. */
__dso_public int sudo_ev_get_timeleft(struct sudo_event *ev, struct timeval *tv); __dso_public int sudo_ev_get_timeleft_v1(struct sudo_event *ev, struct timeval *tv);
#define sudo_ev_get_timeleft(_a, _b) sudo_ev_get_timeleft_v1((_a), (_b))
/* Cause the event loop to exit after one run through. */ /* Cause the event loop to exit after one run through. */
__dso_public void sudo_ev_loopexit(struct sudo_event_base *base); __dso_public void sudo_ev_loopexit_v1(struct sudo_event_base *base);
#define sudo_ev_loopexit(_a) sudo_ev_loopexit_v1((_a))
/* Break out of the event loop right now. */ /* Break out of the event loop right now. */
__dso_public void sudo_ev_loopbreak(struct sudo_event_base *base); __dso_public void sudo_ev_loopbreak_v1(struct sudo_event_base *base);
#define sudo_ev_loopbreak(_a) sudo_ev_loopbreak_v1((_a))
/* Rescan for events and restart the event loop. */ /* Rescan for events and restart the event loop. */
__dso_public void sudo_ev_loopcontinue(struct sudo_event_base *base); __dso_public void sudo_ev_loopcontinue_v1(struct sudo_event_base *base);
#define sudo_ev_loopcontinue(_a) sudo_ev_loopcontinue_v1((_a))
/* Returns true if event loop stopped due to sudo_ev_loopexit(). */ /* Returns true if event loop stopped due to sudo_ev_loopexit(). */
__dso_public bool sudo_ev_got_exit(struct sudo_event_base *base); __dso_public bool sudo_ev_got_exit_v1(struct sudo_event_base *base);
#define sudo_ev_got_exit(_a) sudo_ev_got_exit_v1((_a))
/* Returns true if event loop stopped due to sudo_ev_loopbreak(). */ /* Returns true if event loop stopped due to sudo_ev_loopbreak(). */
__dso_public bool sudo_ev_got_break(struct sudo_event_base *base); __dso_public bool sudo_ev_got_break_v1(struct sudo_event_base *base);
#define sudo_ev_got_break(_a) sudo_ev_got_break_v1((_a))
/* Return the fd associated with an event. */ /* Return the fd associated with an event. */
#define sudo_ev_get_fd(_ev) ((_ev) ? (_ev)->fd : -1) #define sudo_ev_get_fd(_ev) ((_ev) ? (_ev)->fd : -1)

View File

@@ -24,60 +24,60 @@
* go to the debug file, if there is one. * go to the debug file, if there is one.
*/ */
#if (defined(SUDO_ERROR_WRAP) && SUDO_ERROR_WRAP == 0) || defined(NO_VARIADIC_MACROS) #if (defined(SUDO_ERROR_WRAP) && SUDO_ERROR_WRAP == 0) || defined(NO_VARIADIC_MACROS)
# define sudo_fatal sudo_fatal_nodebug # define sudo_fatal sudo_fatal_nodebug_v1
# define sudo_fatalx sudo_fatalx_nodebug # define sudo_fatalx sudo_fatalx_nodebug_v1
# define sudo_warn sudo_warn_nodebug # define sudo_warn sudo_warn_nodebug_v1
# define sudo_warnx sudo_warnx_nodebug # define sudo_warnx sudo_warnx_nodebug_v1
# define sudo_vfatal(fmt, ap) sudo_vfatal_nodebug((fmt), (ap)) # define sudo_vfatal(fmt, ap) sudo_vfatal_nodebug_v1((fmt), (ap))
# define sudo_vfatalx(fmt, ap) sudo_vfatalx_nodebug((fmt), (ap)) # define sudo_vfatalx(fmt, ap) sudo_vfatalx_nodebug_v1((fmt), (ap))
# define sudo_vwarn(fmt, ap) sudo_vwarn_nodebug((fmt), (ap)) # define sudo_vwarn(fmt, ap) sudo_vwarn_nodebug_v1((fmt), (ap))
# define sudo_vwarnx(fmt, ap) sudo_vwarnx_nodebug((fmt), (ap)) # define sudo_vwarnx(fmt, ap) sudo_vwarnx_nodebug_v1((fmt), (ap))
#else /* SUDO_ERROR_WRAP */ #else /* SUDO_ERROR_WRAP */
# if defined(__GNUC__) && __GNUC__ == 2 # if defined(__GNUC__) && __GNUC__ == 2
# define sudo_fatal(fmt...) do { \ # define sudo_fatal(fmt...) do { \
sudo_debug_printf2(__func__, __FILE__, __LINE__, \ sudo_debug_printf2(__func__, __FILE__, __LINE__, \
SUDO_DEBUG_ERROR|SUDO_DEBUG_LINENO|SUDO_DEBUG_ERRNO|sudo_debug_subsys, \ SUDO_DEBUG_ERROR|SUDO_DEBUG_LINENO|SUDO_DEBUG_ERRNO|sudo_debug_subsys, \
fmt); \ fmt); \
sudo_fatal_nodebug(fmt); \ sudo_fatal_nodebug_v1(fmt); \
} while (0) } while (0)
# define sudo_fatalx(fmt...) do { \ # define sudo_fatalx(fmt...) do { \
sudo_debug_printf2(__func__, __FILE__, __LINE__, \ sudo_debug_printf2(__func__, __FILE__, __LINE__, \
SUDO_DEBUG_ERROR|SUDO_DEBUG_LINENO|sudo_debug_subsys, fmt); \ SUDO_DEBUG_ERROR|SUDO_DEBUG_LINENO|sudo_debug_subsys, fmt); \
sudo_fatalx_nodebug(fmt); \ sudo_fatalx_nodebug_v1(fmt); \
} while (0) } while (0)
# define sudo_warn(fmt...) do { \ # define sudo_warn(fmt...) do { \
sudo_debug_printf2(__func__, __FILE__, __LINE__, \ sudo_debug_printf2(__func__, __FILE__, __LINE__, \
SUDO_DEBUG_ERROR|SUDO_DEBUG_LINENO|SUDO_DEBUG_ERRNO|sudo_debug_subsys, \ SUDO_DEBUG_ERROR|SUDO_DEBUG_LINENO|SUDO_DEBUG_ERRNO|sudo_debug_subsys, \
fmt); \ fmt); \
sudo_warn_nodebug(fmt); \ sudo_warn_nodebug_v1(fmt); \
} while (0) } while (0)
# define sudo_warnx(fmt...) do { \ # define sudo_warnx(fmt...) do { \
sudo_debug_printf2(__func__, __FILE__, __LINE__, \ sudo_debug_printf2(__func__, __FILE__, __LINE__, \
SUDO_DEBUG_ERROR|SUDO_DEBUG_LINENO|sudo_debug_subsys, fmt); \ SUDO_DEBUG_ERROR|SUDO_DEBUG_LINENO|sudo_debug_subsys, fmt); \
sudo_warnx_nodebug(fmt); \ sudo_warnx_nodebug_v1(fmt); \
} while (0) } while (0)
# else # else
# define sudo_fatal(...) do { \ # define sudo_fatal(...) do { \
sudo_debug_printf2(__func__, __FILE__, __LINE__, \ sudo_debug_printf2(__func__, __FILE__, __LINE__, \
SUDO_DEBUG_ERROR|SUDO_DEBUG_LINENO|SUDO_DEBUG_ERRNO|sudo_debug_subsys, \ SUDO_DEBUG_ERROR|SUDO_DEBUG_LINENO|SUDO_DEBUG_ERRNO|sudo_debug_subsys, \
__VA_ARGS__); \ __VA_ARGS__); \
sudo_fatal_nodebug(__VA_ARGS__); \ sudo_fatal_nodebug_v1(__VA_ARGS__); \
} while (0) } while (0)
# define sudo_fatalx(...) do { \ # define sudo_fatalx(...) do { \
sudo_debug_printf2(__func__, __FILE__, __LINE__, \ sudo_debug_printf2(__func__, __FILE__, __LINE__, \
SUDO_DEBUG_ERROR|SUDO_DEBUG_LINENO|sudo_debug_subsys, __VA_ARGS__); \ SUDO_DEBUG_ERROR|SUDO_DEBUG_LINENO|sudo_debug_subsys, __VA_ARGS__); \
sudo_fatalx_nodebug(__VA_ARGS__); \ sudo_fatalx_nodebug_v1(__VA_ARGS__); \
} while (0) } while (0)
# define sudo_warn(...) do { \ # define sudo_warn(...) do { \
sudo_debug_printf2(__func__, __FILE__, __LINE__, \ sudo_debug_printf2(__func__, __FILE__, __LINE__, \
SUDO_DEBUG_WARN|SUDO_DEBUG_LINENO|SUDO_DEBUG_ERRNO|sudo_debug_subsys, \ SUDO_DEBUG_WARN|SUDO_DEBUG_LINENO|SUDO_DEBUG_ERRNO|sudo_debug_subsys, \
__VA_ARGS__); \ __VA_ARGS__); \
sudo_warn_nodebug(__VA_ARGS__); \ sudo_warn_nodebug_v1(__VA_ARGS__); \
} while (0) } while (0)
# define sudo_warnx(...) do { \ # define sudo_warnx(...) do { \
sudo_debug_printf2(__func__, __FILE__, __LINE__, \ sudo_debug_printf2(__func__, __FILE__, __LINE__, \
SUDO_DEBUG_WARN|SUDO_DEBUG_LINENO|sudo_debug_subsys, __VA_ARGS__); \ SUDO_DEBUG_WARN|SUDO_DEBUG_LINENO|sudo_debug_subsys, __VA_ARGS__); \
sudo_warnx_nodebug(__VA_ARGS__); \ sudo_warnx_nodebug_v1(__VA_ARGS__); \
} while (0) } while (0)
# endif /* __GNUC__ == 2 */ # endif /* __GNUC__ == 2 */
# define sudo_vfatal(fmt, ap) do { \ # define sudo_vfatal(fmt, ap) do { \
@@ -86,14 +86,14 @@
sudo_debug_vprintf2(__func__, __FILE__, __LINE__, \ sudo_debug_vprintf2(__func__, __FILE__, __LINE__, \
SUDO_DEBUG_ERROR|SUDO_DEBUG_LINENO|SUDO_DEBUG_ERRNO|sudo_debug_subsys, \ SUDO_DEBUG_ERROR|SUDO_DEBUG_LINENO|SUDO_DEBUG_ERRNO|sudo_debug_subsys, \
(fmt), ap2); \ (fmt), ap2); \
sudo_vfatal_nodebug((fmt), (ap)); \ sudo_vfatal_nodebug_v1((fmt), (ap)); \
} while (0) } while (0)
# define sudo_vfatalx(fmt, ap) do { \ # define sudo_vfatalx(fmt, ap) do { \
va_list ap2; \ va_list ap2; \
va_copy(ap2, (ap)); \ va_copy(ap2, (ap)); \
sudo_debug_vprintf2(__func__, __FILE__, __LINE__, \ sudo_debug_vprintf2(__func__, __FILE__, __LINE__, \
SUDO_DEBUG_ERROR|SUDO_DEBUG_LINENO|sudo_debug_subsys, (fmt), ap2); \ SUDO_DEBUG_ERROR|SUDO_DEBUG_LINENO|sudo_debug_subsys, (fmt), ap2); \
sudo_vfatalx_nodebug((fmt), (ap)); \ sudo_vfatalx_nodebug_v1((fmt), (ap)); \
} while (0) } while (0)
# define sudo_vwarn(fmt, ap) do { \ # define sudo_vwarn(fmt, ap) do { \
va_list ap2; \ va_list ap2; \
@@ -101,30 +101,43 @@
sudo_debug_vprintf2(__func__, __FILE__, __LINE__, \ sudo_debug_vprintf2(__func__, __FILE__, __LINE__, \
SUDO_DEBUG_WARN|SUDO_DEBUG_LINENO|SUDO_DEBUG_ERRNO|sudo_debug_subsys, \ SUDO_DEBUG_WARN|SUDO_DEBUG_LINENO|SUDO_DEBUG_ERRNO|sudo_debug_subsys, \
(fmt), ap2); \ (fmt), ap2); \
sudo_vwarn_nodebug((fmt), (ap)); \ sudo_vwarn_nodebug_v1((fmt), (ap)); \
} while (0) } while (0)
# define sudo_vwarnx(fmt, ap) do { \ # define sudo_vwarnx(fmt, ap) do { \
va_list ap2; \ va_list ap2; \
va_copy(ap2, (ap)); \ va_copy(ap2, (ap)); \
sudo_debug_vprintf2(__func__, __FILE__, __LINE__, \ sudo_debug_vprintf2(__func__, __FILE__, __LINE__, \
SUDO_DEBUG_WARN|SUDO_DEBUG_LINENO|sudo_debug_subsys, (fmt), ap2); \ SUDO_DEBUG_WARN|SUDO_DEBUG_LINENO|sudo_debug_subsys, (fmt), ap2); \
sudo_vwarnx_nodebug((fmt), (ap)); \ sudo_vwarnx_nodebug_v1((fmt), (ap)); \
} while (0) } while (0)
#endif /* SUDO_ERROR_WRAP */ #endif /* SUDO_ERROR_WRAP */
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(void (*func)(void)); __dso_public int sudo_fatal_callback_deregister_v1(void (*func)(void));
__dso_public int sudo_fatal_callback_register(void (*func)(void)); __dso_public int sudo_fatal_callback_register_v1(void (*func)(void));
__dso_public char *sudo_warn_gettext(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(int errnum); __dso_public char *sudo_warn_strerror_v1(int errnum);
__dso_public void sudo_fatal_nodebug(const char *, ...) __printf0like(1, 2) __attribute__((__noreturn__)); __dso_public void sudo_fatal_nodebug_v1(const char *, ...) __printf0like(1, 2) __attribute__((__noreturn__));
__dso_public void sudo_fatalx_nodebug(const char *, ...) __printflike(1, 2) __attribute__((__noreturn__)); __dso_public void sudo_fatalx_nodebug_v1(const char *, ...) __printflike(1, 2) __attribute__((__noreturn__));
__dso_public void sudo_vfatal_nodebug(const char *, va_list ap) __printf0like(1, 0) __attribute__((__noreturn__)); __dso_public void sudo_vfatal_nodebug_v1(const char *, va_list ap) __printf0like(1, 0) __attribute__((__noreturn__));
__dso_public void sudo_vfatalx_nodebug(const char *, va_list ap) __printflike(1, 0) __attribute__((__noreturn__)); __dso_public void sudo_vfatalx_nodebug_v1(const char *, va_list ap) __printflike(1, 0) __attribute__((__noreturn__));
__dso_public void sudo_warn_nodebug(const char *, ...) __printf0like(1, 2); __dso_public void sudo_warn_nodebug_v1(const char *, ...) __printf0like(1, 2);
__dso_public void sudo_warnx_nodebug(const char *, ...) __printflike(1, 2); __dso_public void sudo_warnx_nodebug_v1(const char *, ...) __printflike(1, 2);
__dso_public void sudo_vwarn_nodebug(const char *, va_list ap) __printf0like(1, 0); __dso_public void sudo_vwarn_nodebug_v1(const char *, va_list ap) __printf0like(1, 0);
__dso_public void sudo_vwarnx_nodebug(const char *, va_list ap) __printflike(1, 0); __dso_public void sudo_vwarnx_nodebug_v1(const char *, va_list ap) __printflike(1, 0);
#define sudo_fatal_callback_deregister(_a) sudo_fatal_callback_deregister_v1((_a))
#define sudo_fatal_callback_register(_a) sudo_fatal_callback_register_v1((_a))
#define sudo_warn_gettext(_a) sudo_warn_gettext_v1((_a))
#define sudo_warn_strerror(_a) sudo_warn_strerror_v1((_a))
#define sudo_fatal_nodebug sudo_fatal_nodebug_v1
#define sudo_fatalx_nodebug sudo_fatalx_nodebug_v1
#define sudo_vfatal_nodebug(_a, _b) sudo_vfatal_nodebug_v1((_a), (_b))
#define sudo_vfatalx_nodebug(_a, _b) sudo_vfatalx_nodebug_v1((_a), (_b))
#define sudo_warn_nodebug sudo_warn_nodebug_v1
#define sudo_warnx_nodebug sudo_warnx_nodebug_v1
#define sudo_vwarn_nodebug(_a, _b) sudo_vwarn_nodebug_v1((_a), (_b))
#define sudo_vwarnx_nodebug(_a, _b) sudo_vwarnx_nodebug_v1((_a), (_b))
#endif /* _SUDO_FATAL_H_ */ #endif /* _SUDO_FATAL_H_ */

View File

@@ -33,10 +33,16 @@ struct sudo_lbuf {
int cols; int cols;
}; };
__dso_public void sudo_lbuf_init(struct sudo_lbuf *, int (*)(const char *), int, const char *, int); __dso_public void sudo_lbuf_init_v1(struct sudo_lbuf *, int (*)(const char *), int, const char *, int);
__dso_public void sudo_lbuf_destroy(struct sudo_lbuf *); __dso_public void sudo_lbuf_destroy_v1(struct sudo_lbuf *);
__dso_public void sudo_lbuf_append(struct sudo_lbuf *, const char *, ...) __printflike(2, 3); __dso_public void sudo_lbuf_append_v1(struct sudo_lbuf *, const char *, ...) __printflike(2, 3);
__dso_public void sudo_lbuf_append_quoted(struct sudo_lbuf *, const char *, const char *, ...) __printflike(3, 4); __dso_public void sudo_lbuf_append_quoted_v1(struct sudo_lbuf *, const char *, const char *, ...) __printflike(3, 4);
__dso_public void sudo_lbuf_print(struct sudo_lbuf *); __dso_public void sudo_lbuf_print_v1(struct sudo_lbuf *);
#define sudo_lbuf_init(_a, _b, _c, _d, _e) sudo_lbuf_init_v1((_a), (_b), (_c), (_d), (_e))
#define sudo_lbuf_destroy(_a) sudo_lbuf_destroy_v1((_a))
#define sudo_lbuf_append sudo_lbuf_append_v1
#define sudo_lbuf_append_quoted sudo_lbuf_append_quoted_v1
#define sudo_lbuf_print(_a) sudo_lbuf_print_v1((_a))
#endif /* _SUDO_LBUF_H */ #endif /* _SUDO_LBUF_H */

View File

@@ -137,48 +137,65 @@
#endif #endif
/* aix.c */ /* aix.c */
__dso_public int aix_prep_user(char *user, const char *tty); __dso_public int aix_prep_user_v1(char *user, const char *tty);
__dso_public int aix_restoreauthdb(void); #define aix_prep_user(_a, _b) aix_prep_user_v1((_a), (_b))
__dso_public int aix_setauthdb(char *user); __dso_public int aix_restoreauthdb_v1(void);
#define aix_restoreauthdb() aix_restoreauthdb_v1()
/* strtobool.c */ __dso_public int aix_setauthdb_v1(char *user);
__dso_public int sudo_strtobool(const char *str); #define aix_setauthdb(_a) aix_setauthdb_v1((_a))
/* strtoid.c */
__dso_public id_t sudo_strtoid(const char *str, const char *sep, char **endp, const char **errstr);
/* strtomode.c */
__dso_public int sudo_strtomode(const char *cp, const char **errstr);
/* gidlist.c */ /* gidlist.c */
__dso_public int sudo_parse_gids(const char *gidstr, const gid_t *basegid, GETGROUPS_T **gidsp); __dso_public int sudo_parse_gids_v1(const char *gidstr, const gid_t *basegid, GETGROUPS_T **gidsp);
#define sudo_parse_gids(_a, _b, _c) sudo_parse_gids_v1((_a), (_b), (_c))
/* key_val.c */ /* key_val.c */
__dso_public char *sudo_new_key_val(const char *key, const char *value); __dso_public char *sudo_new_key_val_v1(const char *key, const char *value);
#define sudo_new_key_val(_a, _b) sudo_new_key_val_v1((_a), (_b))
/* locking.c */ /* locking.c */
#define SUDO_LOCK 1 /* lock a file */ #define SUDO_LOCK 1 /* lock a file */
#define SUDO_TLOCK 2 /* test & lock a file (non-blocking) */ #define SUDO_TLOCK 2 /* test & lock a file (non-blocking) */
#define SUDO_UNLOCK 4 /* unlock a file */ #define SUDO_UNLOCK 4 /* unlock a file */
__dso_public bool sudo_lock_file(int, int); __dso_public bool sudo_lock_file_v1(int fd, int action);
#define sudo_lock_file(_a, _b) sudo_lock_file_v1((_a), (_b))
/* parseln.c */ /* parseln.c */
__dso_public ssize_t sudo_parseln(char **buf, size_t *bufsize, unsigned int *lineno, FILE *fp); __dso_public ssize_t sudo_parseln_v1(char **buf, size_t *bufsize, unsigned int *lineno, FILE *fp);
#define sudo_parseln(_a, _b, _c, _d) sudo_parseln_v1((_a), (_b), (_c), (_d))
/* progname.c */ /* progname.c */
__dso_public void initprogname(const char *); __dso_public void initprogname(const char *);
/* setgroups.c */ /* setgroups.c */
__dso_public int sudo_setgroups(int ngids, const GETGROUPS_T *gids); __dso_public int sudo_setgroups_v1(int ngids, const GETGROUPS_T *gids);
#define sudo_setgroups(_a, _b) sudo_setgroups_v1((_a), (_b))
/* strtobool.c */
__dso_public int sudo_strtobool_v1(const char *str);
#define sudo_strtobool(_a) sudo_strtobool_v1((_a))
/* strtoid.c */
__dso_public id_t sudo_strtoid_v1(const char *str, const char *sep, char **endp, const char **errstr);
#define sudo_strtoid(_a, _b, _c, _d) sudo_strtoid_v1((_a), (_b), (_c), (_d))
/* strtomode.c */
__dso_public int sudo_strtomode_v1(const char *cp, const char **errstr);
#define sudo_strtomode(_a, _b) sudo_strtomode_v1((_a), (_b))
/* term.c */ /* term.c */
__dso_public bool sudo_term_cbreak(int); __dso_public bool sudo_term_cbreak_v1(int fd);
__dso_public bool sudo_term_copy(int, int); #define sudo_term_cbreak(_a) sudo_term_cbreak_v1((_a))
__dso_public bool sudo_term_noecho(int); __dso_public bool sudo_term_copy_v1(int src, int dst);
__dso_public bool sudo_term_raw(int, int); #define sudo_term_copy(_a, _b) sudo_term_copy_v1((_a), (_b))
__dso_public bool sudo_term_restore(int, bool); __dso_public bool sudo_term_noecho_v1(int fd);
#define sudo_term_noecho(_a) sudo_term_noecho_v1((_a))
__dso_public bool sudo_term_raw_v1(int fd, int isig);
#define sudo_term_raw(_a, _b) sudo_term_raw_v1((_a), (_b))
__dso_public bool sudo_term_restore_v1(int fd, bool flush);
#define sudo_term_restore(_a, _b) sudo_term_restore_v1((_a), (_b))
/* ttysize.c */ /* ttysize.c */
__dso_public void sudo_get_ttysize(int *rowp, int *colp); __dso_public void sudo_get_ttysize_v1(int *rowp, int *colp);
#define sudo_get_ttysize(_a, _b) sudo_get_ttysize_v1((_a), (_b))
#endif /* _SUDO_UTIL_H */ #endif /* _SUDO_UTIL_H */

View File

@@ -141,7 +141,7 @@ aix_setlimits(char *user)
* group lookups are made against the correct source (files, NIS, LDAP, etc). * group lookups are made against the correct source (files, NIS, LDAP, etc).
*/ */
int int
aix_setauthdb(char *user) aix_setauthdb_v1(char *user)
{ {
char *registry; char *registry;
debug_decl(aix_setauthdb, SUDO_DEBUG_UTIL) debug_decl(aix_setauthdb, SUDO_DEBUG_UTIL)
@@ -167,7 +167,7 @@ aix_setauthdb(char *user)
* Restore the saved administrative domain, if any. * Restore the saved administrative domain, if any.
*/ */
int int
aix_restoreauthdb(void) aix_restoreauthdb_v1(void)
{ {
debug_decl(aix_setauthdb, SUDO_DEBUG_UTIL) debug_decl(aix_setauthdb, SUDO_DEBUG_UTIL)
@@ -180,7 +180,7 @@ aix_restoreauthdb(void)
#endif #endif
int int
aix_prep_user(char *user, const char *tty) aix_prep_user_v1(char *user, const char *tty)
{ {
char *info; char *info;
int len; int len;

View File

@@ -74,7 +74,7 @@
* malloc(3) fails. * malloc(3) fails.
*/ */
void * void *
sudo_emalloc(size_t size) sudo_emalloc_v1(size_t size)
{ {
void *ptr; void *ptr;
@@ -91,7 +91,7 @@ sudo_emalloc(size_t size)
* if overflow would occur or if the system malloc(3) fails. * if overflow would occur or if the system malloc(3) fails.
*/ */
void * void *
sudo_emallocarray(size_t nmemb, size_t size) sudo_emallocarray_v1(size_t nmemb, size_t size)
{ {
void *ptr; void *ptr;
@@ -112,7 +112,7 @@ sudo_emallocarray(size_t nmemb, size_t size)
* On success, the allocated space is zero-filled. * On success, the allocated space is zero-filled.
*/ */
void * void *
sudo_ecalloc(size_t nmemb, size_t size) sudo_ecalloc_v1(size_t nmemb, size_t size)
{ {
void *ptr; void *ptr;
@@ -135,7 +135,7 @@ sudo_ecalloc(size_t nmemb, size_t size)
* if the system realloc(3) does not support this. * if the system realloc(3) does not support this.
*/ */
void * void *
sudo_erealloc(void *ptr, size_t size) sudo_erealloc_v1(void *ptr, size_t size)
{ {
if (size == 0) if (size == 0)
@@ -154,7 +154,7 @@ sudo_erealloc(void *ptr, size_t size)
* realloc(3) does not support this. * realloc(3) does not support this.
*/ */
void * void *
sudo_ereallocarray(void *ptr, size_t nmemb, size_t size) sudo_ereallocarray_v1(void *ptr, size_t nmemb, size_t size)
{ {
if (nmemb == 0 || size == 0) if (nmemb == 0 || size == 0)
@@ -176,7 +176,7 @@ sudo_ereallocarray(void *ptr, size_t nmemb, size_t size)
* with a NULL pointer even if the system realloc(3) does not support this. * with a NULL pointer even if the system realloc(3) does not support this.
*/ */
void * void *
sudo_erecalloc(void *ptr, size_t onmemb, size_t nmemb, size_t msize) sudo_erecalloc_v1(void *ptr, size_t onmemb, size_t nmemb, size_t msize)
{ {
size_t size; size_t size;
@@ -201,7 +201,7 @@ sudo_erecalloc(void *ptr, size_t onmemb, size_t nmemb, size_t msize)
* malloc(3) fails. NOTE: unlike strdup(3), sudo_estrdup(NULL) is legal. * malloc(3) fails. NOTE: unlike strdup(3), sudo_estrdup(NULL) is legal.
*/ */
char * char *
sudo_estrdup(const char *src) sudo_estrdup_v1(const char *src)
{ {
char *dst = NULL; char *dst = NULL;
size_t len; size_t len;
@@ -220,7 +220,7 @@ sudo_estrdup(const char *src)
* malloc(3) fails. NOTE: unlike strdup(3), sudo_estrdup(NULL) is legal. * malloc(3) fails. NOTE: unlike strdup(3), sudo_estrdup(NULL) is legal.
*/ */
char * char *
sudo_estrndup(const char *src, size_t maxlen) sudo_estrndup_v1(const char *src, size_t maxlen)
{ {
char *dst = NULL; char *dst = NULL;
size_t len = 0; size_t len = 0;
@@ -242,7 +242,7 @@ sudo_estrndup(const char *src, size_t maxlen)
* returns -1 (out of memory). * returns -1 (out of memory).
*/ */
int int
sudo_easprintf(char **ret, const char *fmt, ...) sudo_easprintf_v1(char **ret, const char *fmt, ...)
{ {
int len; int len;
va_list ap; va_list ap;
@@ -261,7 +261,7 @@ sudo_easprintf(char **ret, const char *fmt, ...)
* returns -1 (out of memory). * returns -1 (out of memory).
*/ */
int int
sudo_evasprintf(char **ret, const char *format, va_list args) sudo_evasprintf_v1(char **ret, const char *format, va_list args)
{ {
int len; int len;

View File

@@ -53,7 +53,7 @@
/* XXX - use non-exiting allocators? */ /* XXX - use non-exiting allocators? */
struct sudo_event_base * struct sudo_event_base *
sudo_ev_base_alloc(void) sudo_ev_base_alloc_v1(void)
{ {
struct sudo_event_base *base; struct sudo_event_base *base;
debug_decl(sudo_ev_base_alloc, SUDO_DEBUG_EVENT) debug_decl(sudo_ev_base_alloc, SUDO_DEBUG_EVENT)
@@ -70,7 +70,7 @@ sudo_ev_base_alloc(void)
} }
void void
sudo_ev_base_free(struct sudo_event_base *base) sudo_ev_base_free_v1(struct sudo_event_base *base)
{ {
struct sudo_event *ev, *next; struct sudo_event *ev, *next;
debug_decl(sudo_ev_base_free, SUDO_DEBUG_EVENT) debug_decl(sudo_ev_base_free, SUDO_DEBUG_EVENT)
@@ -86,7 +86,7 @@ sudo_ev_base_free(struct sudo_event_base *base)
} }
struct sudo_event * struct sudo_event *
sudo_ev_alloc(int fd, short events, sudo_ev_callback_t callback, void *closure) sudo_ev_alloc_v1(int fd, short events, sudo_ev_callback_t callback, void *closure)
{ {
struct sudo_event *ev; struct sudo_event *ev;
debug_decl(sudo_ev_alloc, SUDO_DEBUG_EVENT) debug_decl(sudo_ev_alloc, SUDO_DEBUG_EVENT)
@@ -104,7 +104,7 @@ sudo_ev_alloc(int fd, short events, sudo_ev_callback_t callback, void *closure)
} }
void void
sudo_ev_free(struct sudo_event *ev) sudo_ev_free_v1(struct sudo_event *ev)
{ {
debug_decl(sudo_ev_free, SUDO_DEBUG_EVENT) debug_decl(sudo_ev_free, SUDO_DEBUG_EVENT)
@@ -116,7 +116,7 @@ sudo_ev_free(struct sudo_event *ev)
} }
int int
sudo_ev_add(struct sudo_event_base *base, struct sudo_event *ev, sudo_ev_add_v1(struct sudo_event_base *base, struct sudo_event *ev,
struct timeval *timo, bool tohead) struct timeval *timo, bool tohead)
{ {
debug_decl(sudo_ev_add, SUDO_DEBUG_EVENT) debug_decl(sudo_ev_add, SUDO_DEBUG_EVENT)
@@ -182,7 +182,7 @@ sudo_ev_add(struct sudo_event_base *base, struct sudo_event *ev,
} }
int int
sudo_ev_del(struct sudo_event_base *base, struct sudo_event *ev) sudo_ev_del_v1(struct sudo_event_base *base, struct sudo_event *ev)
{ {
debug_decl(sudo_ev_del, SUDO_DEBUG_EVENT) debug_decl(sudo_ev_del, SUDO_DEBUG_EVENT)
@@ -239,7 +239,7 @@ sudo_ev_del(struct sudo_event_base *base, struct sudo_event *ev)
* Returns 0 on success, 1 if no events registered and -1 on error * Returns 0 on success, 1 if no events registered and -1 on error
*/ */
int int
sudo_ev_loop(struct sudo_event_base *base, int flags) sudo_ev_loop_v1(struct sudo_event_base *base, int flags)
{ {
struct timeval now; struct timeval now;
struct sudo_event *ev; struct sudo_event *ev;
@@ -347,7 +347,7 @@ done:
} }
void void
sudo_ev_loopexit(struct sudo_event_base *base) sudo_ev_loopexit_v1(struct sudo_event_base *base)
{ {
debug_decl(sudo_ev_loopexit, SUDO_DEBUG_EVENT) debug_decl(sudo_ev_loopexit, SUDO_DEBUG_EVENT)
SET(base->flags, SUDO_EVBASE_LOOPEXIT); SET(base->flags, SUDO_EVBASE_LOOPEXIT);
@@ -355,7 +355,7 @@ sudo_ev_loopexit(struct sudo_event_base *base)
} }
void void
sudo_ev_loopbreak(struct sudo_event_base *base) sudo_ev_loopbreak_v1(struct sudo_event_base *base)
{ {
debug_decl(sudo_ev_loopbreak, SUDO_DEBUG_EVENT) debug_decl(sudo_ev_loopbreak, SUDO_DEBUG_EVENT)
SET(base->flags, SUDO_EVBASE_LOOPBREAK); SET(base->flags, SUDO_EVBASE_LOOPBREAK);
@@ -363,7 +363,7 @@ sudo_ev_loopbreak(struct sudo_event_base *base)
} }
void void
sudo_ev_loopcontinue(struct sudo_event_base *base) sudo_ev_loopcontinue_v1(struct sudo_event_base *base)
{ {
debug_decl(sudo_ev_loopcontinue, SUDO_DEBUG_EVENT) debug_decl(sudo_ev_loopcontinue, SUDO_DEBUG_EVENT)
SET(base->flags, SUDO_EVBASE_LOOPCONT); SET(base->flags, SUDO_EVBASE_LOOPCONT);
@@ -371,21 +371,21 @@ sudo_ev_loopcontinue(struct sudo_event_base *base)
} }
bool bool
sudo_ev_got_exit(struct sudo_event_base *base) sudo_ev_got_exit_v1(struct sudo_event_base *base)
{ {
debug_decl(sudo_ev_got_exit, SUDO_DEBUG_EVENT) debug_decl(sudo_ev_got_exit, SUDO_DEBUG_EVENT)
debug_return_bool(ISSET(base->flags, SUDO_EVBASE_GOT_EXIT)); debug_return_bool(ISSET(base->flags, SUDO_EVBASE_GOT_EXIT));
} }
bool bool
sudo_ev_got_break(struct sudo_event_base *base) sudo_ev_got_break_v1(struct sudo_event_base *base)
{ {
debug_decl(sudo_ev_got_break, SUDO_DEBUG_EVENT) debug_decl(sudo_ev_got_break, SUDO_DEBUG_EVENT)
debug_return_bool(ISSET(base->flags, SUDO_EVBASE_GOT_BREAK)); debug_return_bool(ISSET(base->flags, SUDO_EVBASE_GOT_BREAK));
} }
int int
sudo_ev_get_timeleft(struct sudo_event *ev, struct timeval *tv) sudo_ev_get_timeleft_v1(struct sudo_event *ev, struct timeval *tv)
{ {
struct timeval now; struct timeval now;
debug_decl(sudo_ev_get_timeleft, SUDO_DEBUG_EVENT) debug_decl(sudo_ev_get_timeleft, SUDO_DEBUG_EVENT)

View File

@@ -61,7 +61,7 @@ do_cleanup(void)
} }
void void
sudo_fatal_nodebug(const char *fmt, ...) sudo_fatal_nodebug_v1(const char *fmt, ...)
{ {
va_list ap; va_list ap;
@@ -73,7 +73,7 @@ sudo_fatal_nodebug(const char *fmt, ...)
} }
void void
sudo_fatalx_nodebug(const char *fmt, ...) sudo_fatalx_nodebug_v1(const char *fmt, ...)
{ {
va_list ap; va_list ap;
@@ -85,7 +85,7 @@ sudo_fatalx_nodebug(const char *fmt, ...)
} }
void void
sudo_vfatal_nodebug(const char *fmt, va_list ap) sudo_vfatal_nodebug_v1(const char *fmt, va_list ap)
{ {
_warning(errno, fmt, ap); _warning(errno, fmt, ap);
do_cleanup(); do_cleanup();
@@ -93,7 +93,7 @@ sudo_vfatal_nodebug(const char *fmt, va_list ap)
} }
void void
sudo_vfatalx_nodebug(const char *fmt, va_list ap) sudo_vfatalx_nodebug_v1(const char *fmt, va_list ap)
{ {
_warning(0, fmt, ap); _warning(0, fmt, ap);
do_cleanup(); do_cleanup();
@@ -101,7 +101,7 @@ sudo_vfatalx_nodebug(const char *fmt, va_list ap)
} }
void void
sudo_warn_nodebug(const char *fmt, ...) sudo_warn_nodebug_v1(const char *fmt, ...)
{ {
va_list ap; va_list ap;
@@ -111,7 +111,7 @@ sudo_warn_nodebug(const char *fmt, ...)
} }
void void
sudo_warnx_nodebug(const char *fmt, ...) sudo_warnx_nodebug_v1(const char *fmt, ...)
{ {
va_list ap; va_list ap;
va_start(ap, fmt); va_start(ap, fmt);
@@ -120,13 +120,13 @@ sudo_warnx_nodebug(const char *fmt, ...)
} }
void void
sudo_vwarn_nodebug(const char *fmt, va_list ap) sudo_vwarn_nodebug_v1(const char *fmt, va_list ap)
{ {
_warning(errno, fmt, ap); _warning(errno, fmt, ap);
} }
void void
sudo_vwarnx_nodebug(const char *fmt, va_list ap) sudo_vwarnx_nodebug_v1(const char *fmt, va_list ap)
{ {
_warning(0, fmt, ap); _warning(0, fmt, ap);
} }
@@ -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(void (*func)(void)) sudo_fatal_callback_register_v1(void (*func)(void))
{ {
struct sudo_fatal_callback *cb; struct sudo_fatal_callback *cb;
@@ -182,7 +182,7 @@ sudo_fatal_callback_register(void (*func)(void))
* Deregister a sudo_fatal()/sudo_fatalx() callback. * Deregister a sudo_fatal()/sudo_fatalx() callback.
*/ */
int int
sudo_fatal_callback_deregister(void (*func)(void)) sudo_fatal_callback_deregister_v1(void (*func)(void))
{ {
struct sudo_fatal_callback *cb, **prev; struct sudo_fatal_callback *cb, **prev;

View File

@@ -45,7 +45,7 @@
* Returns the number of gids in the allocated array. * Returns the number of gids in the allocated array.
*/ */
int int
sudo_parse_gids(const char *gidstr, const gid_t *basegid, GETGROUPS_T **gidsp) sudo_parse_gids_v1(const char *gidstr, const gid_t *basegid, GETGROUPS_T **gidsp)
{ {
int ngids = 0; int ngids = 0;
GETGROUPS_T *gids; GETGROUPS_T *gids;

View File

@@ -46,7 +46,7 @@
* The caller is responsible for freeing the string. * The caller is responsible for freeing the string.
*/ */
char * char *
sudo_new_key_val(const char *key, const char *val) sudo_new_key_val_v1(const char *key, const char *val)
{ {
size_t key_len = strlen(key); size_t key_len = strlen(key);
size_t val_len = strlen(val); size_t val_len = strlen(val);

View File

@@ -49,7 +49,7 @@
#include "sudo_debug.h" #include "sudo_debug.h"
void void
sudo_lbuf_init(struct sudo_lbuf *lbuf, int (*output)(const char *), sudo_lbuf_init_v1(struct sudo_lbuf *lbuf, int (*output)(const char *),
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)
@@ -66,7 +66,7 @@ sudo_lbuf_init(struct sudo_lbuf *lbuf, int (*output)(const char *),
} }
void void
sudo_lbuf_destroy(struct sudo_lbuf *lbuf) sudo_lbuf_destroy_v1(struct sudo_lbuf *lbuf)
{ {
debug_decl(sudo_lbuf_destroy, SUDO_DEBUG_UTIL) debug_decl(sudo_lbuf_destroy, SUDO_DEBUG_UTIL)
@@ -92,7 +92,7 @@ sudo_lbuf_expand(struct sudo_lbuf *lbuf, int extra)
* Any characters in set are quoted with a backslash. * Any characters in set are quoted with a backslash.
*/ */
void void
sudo_lbuf_append_quoted(struct sudo_lbuf *lbuf, const char *set, const char *fmt, ...) sudo_lbuf_append_quoted_v1(struct sudo_lbuf *lbuf, const char *set, const char *fmt, ...)
{ {
va_list ap; va_list ap;
int len; int len;
@@ -139,7 +139,7 @@ done:
* Parse the format and append strings, only %s and %% escapes are supported. * Parse the format and append strings, only %s and %% escapes are supported.
*/ */
void void
sudo_lbuf_append(struct sudo_lbuf *lbuf, const char *fmt, ...) sudo_lbuf_append_v1(struct sudo_lbuf *lbuf, const char *fmt, ...)
{ {
va_list ap; va_list ap;
int len; int len;
@@ -232,7 +232,7 @@ sudo_lbuf_println(struct sudo_lbuf *lbuf, char *line, int len)
* The lbuf is reset on return. * The lbuf is reset on return.
*/ */
void void
sudo_lbuf_print(struct sudo_lbuf *lbuf) sudo_lbuf_print_v1(struct sudo_lbuf *lbuf)
{ {
char *cp, *ep; char *cp, *ep;
int len; int len;

View File

@@ -65,7 +65,7 @@
*/ */
#ifdef HAVE_LOCKF #ifdef HAVE_LOCKF
bool bool
sudo_lock_file(int fd, int lockit) sudo_lock_file_v1(int fd, int lockit)
{ {
int op = 0; int op = 0;
debug_decl(sudo_lock_file, SUDO_DEBUG_UTIL) debug_decl(sudo_lock_file, SUDO_DEBUG_UTIL)
@@ -85,7 +85,7 @@ sudo_lock_file(int fd, int lockit)
} }
#elif defined(HAVE_FLOCK) #elif defined(HAVE_FLOCK)
bool bool
sudo_lock_file(int fd, int lockit) sudo_lock_file_v1(int fd, int lockit)
{ {
int op = 0; int op = 0;
debug_decl(sudo_lock_file, SUDO_DEBUG_UTIL) debug_decl(sudo_lock_file, SUDO_DEBUG_UTIL)
@@ -105,7 +105,7 @@ sudo_lock_file(int fd, int lockit)
} }
#else #else
bool bool
sudo_lock_file(int fd, int lockit) sudo_lock_file_v1(int fd, int lockit)
{ {
#ifdef F_SETLK #ifdef F_SETLK
int func; int func;

View File

@@ -61,7 +61,7 @@
* could also make comment char and line continuation configurable * could also make comment char and line continuation configurable
*/ */
ssize_t ssize_t
sudo_parseln(char **bufp, size_t *bufsizep, unsigned int *lineno, FILE *fp) sudo_parseln_v1(char **bufp, size_t *bufsizep, unsigned int *lineno, FILE *fp)
{ {
size_t linesize = 0, total = 0; size_t linesize = 0, total = 0;
ssize_t len; ssize_t len;

View File

@@ -37,7 +37,7 @@
/* /*
* Verify that path is the right type and not writable by other users. * Verify that path is the right type and not writable by other users.
*/ */
int static int
sudo_secure_path(const char *path, unsigned int type, uid_t uid, gid_t gid, struct stat *sbp) sudo_secure_path(const char *path, unsigned int type, uid_t uid, gid_t gid, struct stat *sbp)
{ {
struct stat sb; struct stat sb;
@@ -68,7 +68,7 @@ sudo_secure_path(const char *path, unsigned int type, uid_t uid, gid_t gid, stru
* Verify that path is a regular file and not writable by other users. * Verify that path is a regular file and not writable by other users.
*/ */
int int
sudo_secure_file(const char *path, uid_t uid, gid_t gid, struct stat *sbp) sudo_secure_file_v1(const char *path, uid_t uid, gid_t gid, struct stat *sbp)
{ {
return sudo_secure_path(path, _S_IFREG, uid, gid, sbp); return sudo_secure_path(path, _S_IFREG, uid, gid, sbp);
} }
@@ -77,7 +77,7 @@ sudo_secure_file(const char *path, uid_t uid, gid_t gid, struct stat *sbp)
* Verify that path is a directory and not writable by other users. * Verify that path is a directory and not writable by other users.
*/ */
int int
sudo_secure_dir(const char *path, uid_t uid, gid_t gid, struct stat *sbp) sudo_secure_dir_v1(const char *path, uid_t uid, gid_t gid, struct stat *sbp)
{ {
return sudo_secure_path(path, _S_IFDIR, uid, gid, sbp); return sudo_secure_path(path, _S_IFDIR, uid, gid, sbp);
} }

View File

@@ -40,7 +40,7 @@
#include "sudo_util.h" #include "sudo_util.h"
int int
sudo_setgroups(int ngids, const GETGROUPS_T *gids) sudo_setgroups_v1(int ngids, const GETGROUPS_T *gids)
{ {
int maxgids, rval; int maxgids, rval;
debug_decl(sudo_setgroups, SUDO_DEBUG_UTIL) debug_decl(sudo_setgroups, SUDO_DEBUG_UTIL)

View File

@@ -42,7 +42,7 @@
#include "sudo_util.h" #include "sudo_util.h"
int int
sudo_strtobool(const char *str) sudo_strtobool_v1(const char *str)
{ {
debug_decl(sudo_strtobool, SUDO_DEBUG_UTIL) debug_decl(sudo_strtobool, SUDO_DEBUG_UTIL)

View File

@@ -56,7 +56,7 @@
* On error, returns 0 and sets errstr. * On error, returns 0 and sets errstr.
*/ */
id_t id_t
sudo_strtoid(const char *p, const char *sep, char **endp, const char **errstr) sudo_strtoid_v1(const char *p, const char *sep, char **endp, const char **errstr)
{ {
char *ep; char *ep;
id_t rval = 0; id_t rval = 0;

View File

@@ -42,7 +42,7 @@
* On error, returns 0 and sets errstr. * On error, returns 0 and sets errstr.
*/ */
int int
sudo_strtomode(const char *cp, const char **errstr) sudo_strtomode_v1(const char *cp, const char **errstr)
{ {
char *ep; char *ep;
long lval; long lval;

View File

@@ -317,20 +317,20 @@ set_plugin(const char *entry, const char *conf_file)
} }
const char * const char *
sudo_conf_askpass_path(void) sudo_conf_askpass_path_v1(void)
{ {
return sudo_conf_data.paths[SUDO_CONF_ASKPASS_IDX].pval; return sudo_conf_data.paths[SUDO_CONF_ASKPASS_IDX].pval;
} }
const char * const char *
sudo_conf_sesh_path(void) sudo_conf_sesh_path_v1(void)
{ {
return sudo_conf_data.paths[SUDO_CONF_SESH_IDX].pval; return sudo_conf_data.paths[SUDO_CONF_SESH_IDX].pval;
} }
#ifdef _PATH_SUDO_NOEXEC #ifdef _PATH_SUDO_NOEXEC
const char * const char *
sudo_conf_noexec_path(void) sudo_conf_noexec_path_v1(void)
{ {
return sudo_conf_data.paths[SUDO_CONF_NOEXEC_IDX].pval; return sudo_conf_data.paths[SUDO_CONF_NOEXEC_IDX].pval;
} }
@@ -338,44 +338,44 @@ sudo_conf_noexec_path(void)
#ifdef _PATH_SUDO_PLUGIN_DIR #ifdef _PATH_SUDO_PLUGIN_DIR
const char * const char *
sudo_conf_plugin_dir_path(void) sudo_conf_plugin_dir_path_v1(void)
{ {
return sudo_conf_data.paths[SUDO_CONF_PLUGIN_IDX].pval; return sudo_conf_data.paths[SUDO_CONF_PLUGIN_IDX].pval;
} }
#endif #endif
const char * const char *
sudo_conf_debug_flags(void) sudo_conf_debug_flags_v1(void)
{ {
return sudo_conf_data.debug_flags; return sudo_conf_data.debug_flags;
} }
int int
sudo_conf_group_source(void) sudo_conf_group_source_v1(void)
{ {
return sudo_conf_data.group_source; return sudo_conf_data.group_source;
} }
int int
sudo_conf_max_groups(void) sudo_conf_max_groups_v1(void)
{ {
return sudo_conf_data.max_groups; return sudo_conf_data.max_groups;
} }
struct plugin_info_list * struct plugin_info_list *
sudo_conf_plugins(void) sudo_conf_plugins_v1(void)
{ {
return &sudo_conf_data.plugins; return &sudo_conf_data.plugins;
} }
bool bool
sudo_conf_disable_coredump(void) sudo_conf_disable_coredump_v1(void)
{ {
return sudo_conf_data.disable_coredump; return sudo_conf_data.disable_coredump;
} }
bool bool
sudo_conf_probe_interfaces(void) sudo_conf_probe_interfaces_v1(void)
{ {
return sudo_conf_data.probe_interfaces; return sudo_conf_data.probe_interfaces;
} }
@@ -384,7 +384,7 @@ sudo_conf_probe_interfaces(void)
* Reads in /etc/sudo.conf and populates sudo_conf_data. * Reads in /etc/sudo.conf and populates sudo_conf_data.
*/ */
void void
sudo_conf_read(const char *conf_file) sudo_conf_read_v1(const char *conf_file)
{ {
struct sudo_conf_table *cur; struct sudo_conf_table *cur;
struct stat sb; struct stat sb;

View File

@@ -49,7 +49,7 @@
static struct sudo_preload_table *preload_table; static struct sudo_preload_table *preload_table;
void void
sudo_dso_preload_table(struct sudo_preload_table *table) sudo_dso_preload_table_v1(struct sudo_preload_table *table)
{ {
preload_table = table; preload_table = table;
} }
@@ -61,7 +61,7 @@ sudo_dso_preload_table(struct sudo_preload_table *table)
# endif # endif
void * void *
sudo_dso_load(const char *path, int mode) sudo_dso_load_v1(const char *path, int mode)
{ {
struct sudo_preload_table *pt; struct sudo_preload_table *pt;
int flags = DYNAMIC_PATH | BIND_VERBOSE; int flags = DYNAMIC_PATH | BIND_VERBOSE;
@@ -87,7 +87,7 @@ sudo_dso_load(const char *path, int mode)
} }
int int
sudo_dso_unload(void *handle) sudo_dso_unload_v1(void *handle)
{ {
struct sudo_preload_table *pt; struct sudo_preload_table *pt;
@@ -103,7 +103,7 @@ sudo_dso_unload(void *handle)
} }
void * void *
sudo_dso_findsym(void *vhandle, const char *symbol) sudo_dso_findsym_v1(void *vhandle, const char *symbol)
{ {
struct sudo_preload_table *pt; struct sudo_preload_table *pt;
shl_t handle = vhandle; shl_t handle = vhandle;
@@ -156,7 +156,7 @@ sudo_dso_findsym(void *vhandle, const char *symbol)
} }
char * char *
sudo_dso_strerror(void) sudo_dso_strerror_v1(void)
{ {
return strerror(errno); return strerror(errno);
} }
@@ -168,7 +168,7 @@ sudo_dso_strerror(void)
# endif # endif
void * void *
sudo_dso_load(const char *path, int mode) sudo_dso_load_v1(const char *path, int mode)
{ {
struct sudo_preload_table *pt; struct sudo_preload_table *pt;
int flags = 0; int flags = 0;
@@ -195,7 +195,7 @@ sudo_dso_load(const char *path, int mode)
} }
int int
sudo_dso_unload(void *handle) sudo_dso_unload_v1(void *handle)
{ {
struct sudo_preload_table *pt; struct sudo_preload_table *pt;
@@ -211,7 +211,7 @@ sudo_dso_unload(void *handle)
} }
void * void *
sudo_dso_findsym(void *handle, const char *symbol) sudo_dso_findsym_v1(void *handle, const char *symbol)
{ {
struct sudo_preload_table *pt; struct sudo_preload_table *pt;
@@ -260,7 +260,7 @@ sudo_dso_findsym(void *handle, const char *symbol)
} }
char * char *
sudo_dso_strerror(void) sudo_dso_strerror_v1(void)
{ {
return dlerror(); return dlerror();
} }
@@ -271,7 +271,7 @@ sudo_dso_strerror(void)
* Emulate dlopen() using a static list of symbols compiled into sudo. * Emulate dlopen() using a static list of symbols compiled into sudo.
*/ */
void * void *
sudo_dso_load(const char *path, int mode) sudo_dso_load_v1(const char *path, int mode)
{ {
struct sudo_preload_table *pt; struct sudo_preload_table *pt;
@@ -286,7 +286,7 @@ sudo_dso_load(const char *path, int mode)
} }
int int
sudo_dso_unload(void *handle) sudo_dso_unload_v1(void *handle)
{ {
struct sudo_preload_table *pt; struct sudo_preload_table *pt;
@@ -300,7 +300,7 @@ sudo_dso_unload(void *handle)
} }
void * void *
sudo_dso_findsym(void *handle, const char *symbol) sudo_dso_findsym_v1(void *handle, const char *symbol)
{ {
struct sudo_preload_table *pt; struct sudo_preload_table *pt;
@@ -320,7 +320,7 @@ sudo_dso_findsym(void *handle, const char *symbol)
} }
char * char *
sudo_dso_strerror(void) sudo_dso_strerror_v1(void)
{ {
return strerror(errno); return strerror(errno);
} }

View File

@@ -117,7 +117,7 @@ tcsetattr_nobg(int fd, int flags, struct termios *tp)
* Returns true on success or false on failure. * Returns true on success or false on failure.
*/ */
bool bool
sudo_term_restore(int fd, bool flush) sudo_term_restore_v1(int fd, bool flush)
{ {
debug_decl(term_restore, SUDO_DEBUG_UTIL) debug_decl(term_restore, SUDO_DEBUG_UTIL)
@@ -135,7 +135,7 @@ sudo_term_restore(int fd, bool flush)
* Returns true on success or false on failure. * Returns true on success or false on failure.
*/ */
bool bool
sudo_term_noecho(int fd) sudo_term_noecho_v1(int fd)
{ {
debug_decl(term_noecho, SUDO_DEBUG_UTIL) debug_decl(term_noecho, SUDO_DEBUG_UTIL)
@@ -164,7 +164,7 @@ again:
* Returns true on success or false on failure. * Returns true on success or false on failure.
*/ */
bool bool
sudo_term_raw(int fd, int isig) sudo_term_raw_v1(int fd, int isig)
{ {
struct termios term; struct termios term;
debug_decl(term_raw, SUDO_DEBUG_UTIL) debug_decl(term_raw, SUDO_DEBUG_UTIL)
@@ -198,7 +198,7 @@ again:
* Returns true on success or false on failure. * Returns true on success or false on failure.
*/ */
bool bool
sudo_term_cbreak(int fd) sudo_term_cbreak_v1(int fd)
{ {
debug_decl(term_cbreak, SUDO_DEBUG_UTIL) debug_decl(term_cbreak, SUDO_DEBUG_UTIL)
@@ -235,7 +235,7 @@ again:
* Returns true on success or false on failure. * Returns true on success or false on failure.
*/ */
bool bool
sudo_term_copy(int src, int dst) sudo_term_copy_v1(int src, int dst)
{ {
struct termios tt; struct termios tt;
debug_decl(term_copy, SUDO_DEBUG_UTIL) debug_decl(term_copy, SUDO_DEBUG_UTIL)

View File

@@ -71,7 +71,7 @@ get_ttysize_ioctl(int *rowp, int *colp)
#endif /* TIOCGWINSZ */ #endif /* TIOCGWINSZ */
void void
sudo_get_ttysize(int *rowp, int *colp) sudo_get_ttysize_v1(int *rowp, int *colp)
{ {
debug_decl(sudo_get_ttysize, SUDO_DEBUG_EXEC) debug_decl(sudo_get_ttysize, SUDO_DEBUG_EXEC)

View File

@@ -19,26 +19,26 @@ SHA512Pad
SHA512Transform SHA512Transform
SHA512Update SHA512Update
_sudo_printf _sudo_printf
aix_prep_user aix_prep_user_v1
aix_restoreauthdb aix_restoreauthdb_v1
aix_setauthdb aix_setauthdb_v1
closefrom_fallback closefrom_fallback
initprogname initprogname
isblank isblank
sudo_asprintf sudo_asprintf
sudo_clock_gettime sudo_clock_gettime
sudo_closefrom sudo_closefrom
sudo_conf_askpass_path sudo_conf_askpass_path_v1
sudo_conf_debug_flags sudo_conf_debug_flags_v1
sudo_conf_disable_coredump sudo_conf_disable_coredump_v1
sudo_conf_group_source sudo_conf_group_source_v1
sudo_conf_max_groups sudo_conf_max_groups_v1
sudo_conf_noexec_path sudo_conf_noexec_path_v1
sudo_conf_plugin_dir_path sudo_conf_plugin_dir_path_v1
sudo_conf_plugins sudo_conf_plugins_v1
sudo_conf_probe_interfaces sudo_conf_probe_interfaces_v1
sudo_conf_read sudo_conf_read_v1
sudo_conf_sesh_path sudo_conf_sesh_path_v1
sudo_debug_enter sudo_debug_enter
sudo_debug_execve2 sudo_debug_execve2
sudo_debug_exit sudo_debug_exit
@@ -56,45 +56,44 @@ sudo_debug_init
sudo_debug_printf2 sudo_debug_printf2
sudo_debug_printf_nvm sudo_debug_printf_nvm
sudo_debug_vprintf2 sudo_debug_vprintf2
sudo_debug_write
sudo_debug_write2 sudo_debug_write2
sudo_dso_findsym sudo_dso_findsym_v1
sudo_dso_load sudo_dso_load_v1
sudo_dso_preload_table sudo_dso_preload_table_v1
sudo_dso_strerror sudo_dso_strerror_v1
sudo_dso_unload sudo_dso_unload_v1
sudo_easprintf sudo_easprintf_v1
sudo_ecalloc sudo_ecalloc_v1
sudo_emalloc sudo_emalloc_v1
sudo_emallocarray sudo_emallocarray_v1
sudo_erealloc sudo_erealloc_v1
sudo_ereallocarray sudo_ereallocarray_v1
sudo_erecalloc sudo_erecalloc_v1
sudo_estrdup sudo_estrdup_v1
sudo_estrndup sudo_estrndup_v1
sudo_ev_add sudo_ev_add_v1
sudo_ev_alloc sudo_ev_alloc_v1
sudo_ev_base_alloc sudo_ev_base_alloc_v1
sudo_ev_base_free sudo_ev_base_free_v1
sudo_ev_del sudo_ev_del_v1
sudo_ev_free sudo_ev_free_v1
sudo_ev_get_timeleft sudo_ev_get_timeleft_v1
sudo_ev_got_break sudo_ev_got_break_v1
sudo_ev_got_exit sudo_ev_got_exit_v1
sudo_ev_loop sudo_ev_loop_v1
sudo_ev_loopbreak sudo_ev_loopbreak_v1
sudo_ev_loopcontinue sudo_ev_loopcontinue_v1
sudo_ev_loopexit sudo_ev_loopexit_v1
sudo_evasprintf sudo_evasprintf_v1
sudo_fatal_callback_deregister sudo_fatal_callback_deregister_v1
sudo_fatal_callback_register sudo_fatal_callback_register_v1
sudo_fatal_nodebug sudo_fatal_nodebug_v1
sudo_fatalx_nodebug sudo_fatalx_nodebug_v1
sudo_fnmatch sudo_fnmatch
sudo_freeaddrinfo sudo_freeaddrinfo
sudo_futimes sudo_futimes
sudo_gai_strerror sudo_gai_strerror
sudo_get_ttysize sudo_get_ttysize_v1
sudo_getaddrinfo sudo_getaddrinfo
sudo_getcwd sudo_getcwd
sudo_getgrouplist sudo_getgrouplist
@@ -105,48 +104,48 @@ sudo_getprogname
sudo_glob sudo_glob
sudo_globfree sudo_globfree
sudo_inet_pton sudo_inet_pton
sudo_lbuf_append sudo_lbuf_append_quoted_v1
sudo_lbuf_append_quoted sudo_lbuf_append_v1
sudo_lbuf_destroy sudo_lbuf_destroy_v1
sudo_lbuf_init sudo_lbuf_init_v1
sudo_lbuf_print sudo_lbuf_print_v1
sudo_lock_file sudo_lock_file_v1
sudo_memrchr sudo_memrchr
sudo_memset_s sudo_memset_s
sudo_mkdtemp sudo_mkdtemp
sudo_mkstemps sudo_mkstemps
sudo_new_key_val sudo_new_key_val_v1
sudo_parse_gids sudo_parse_gids_v1
sudo_parseln sudo_parseln_v1
sudo_printf sudo_printf
sudo_pw_dup sudo_pw_dup
sudo_secure_dir sudo_secure_dir_v1
sudo_secure_file sudo_secure_file_v1
sudo_setgroups sudo_setgroups_v1
sudo_sig2str sudo_sig2str
sudo_snprintf sudo_snprintf
sudo_strlcat sudo_strlcat
sudo_strlcpy sudo_strlcpy
sudo_strsignal sudo_strsignal
sudo_strtobool sudo_strtobool_v1
sudo_strtoid sudo_strtoid_v1
sudo_strtomode sudo_strtomode_v1
sudo_strtonum sudo_strtonum
sudo_term_cbreak sudo_term_cbreak_v1
sudo_term_copy sudo_term_copy_v1
sudo_term_erase sudo_term_erase_v1
sudo_term_kill sudo_term_kill_v1
sudo_term_noecho sudo_term_noecho_v1
sudo_term_raw sudo_term_raw_v1
sudo_term_restore sudo_term_restore_v1
sudo_utimes sudo_utimes
sudo_vasprintf sudo_vasprintf
sudo_vfatal_nodebug sudo_vfatal_nodebug_v1
sudo_vfatalx_nodebug sudo_vfatalx_nodebug_v1
sudo_vsnprintf sudo_vsnprintf
sudo_vwarn_nodebug sudo_vwarn_nodebug_v1
sudo_vwarnx_nodebug sudo_vwarnx_nodebug_v1
sudo_warn_gettext sudo_warn_gettext_v1
sudo_warn_nodebug sudo_warn_nodebug_v1
sudo_warn_strerror sudo_warn_strerror_v1
sudo_warnx_nodebug sudo_warnx_nodebug_v1

View File

@@ -112,7 +112,7 @@ sudoers_setlocale(int newlocale, int *prevlocale)
#ifdef HAVE_LIBINTL_H #ifdef HAVE_LIBINTL_H
char * char *
sudo_warn_gettext(const char *msgid) sudo_warn_gettext_v1(const char *msgid)
{ {
int warning_locale; int warning_locale;
char *msg; char *msg;
@@ -126,7 +126,7 @@ sudo_warn_gettext(const char *msgid)
#endif /* HAVE_LIBINTL_H */ #endif /* HAVE_LIBINTL_H */
char * char *
sudo_warn_strerror(int errnum) sudo_warn_strerror_v1(int errnum)
{ {
int warning_locale; int warning_locale;
char *errmsg; char *errmsg;

View File

@@ -36,7 +36,7 @@
#ifdef HAVE_LIBINTL_H #ifdef HAVE_LIBINTL_H
/* No need to swap locales in the front end. */ /* No need to swap locales in the front end. */
char * char *
sudo_warn_gettext(const char *msgid) sudo_warn_gettext_v1(const char *msgid)
{ {
return gettext(msgid); return gettext(msgid);
} }
@@ -44,7 +44,7 @@ sudo_warn_gettext(const char *msgid)
/* No need to swap locales in the front end. */ /* No need to swap locales in the front end. */
char * char *
sudo_warn_strerror(int errnum) sudo_warn_strerror_v1(int errnum)
{ {
return strerror(errnum); return strerror(errnum);
} }