diff options
Diffstat (limited to 'src/common')
-rw-r--r-- | src/common/util.c | 12 | ||||
-rw-r--r-- | src/common/util.h | 7 |
2 files changed, 10 insertions, 9 deletions
diff --git a/src/common/util.c b/src/common/util.c index 95dea4b69c..a5e41bf256 100644 --- a/src/common/util.c +++ b/src/common/util.c @@ -3402,9 +3402,8 @@ tor_join_win_cmdline(const char *argv[]) * function; it's designed to be used in code paths where you can't call * arbitrary C functions. */ -STATIC int -format_hex_number_for_helper_exit_status(unsigned int x, char *buf, - int max_len) +int +format_hex_number_sigsafe(unsigned int x, char *buf, int max_len) { int len; unsigned int tmp; @@ -3490,8 +3489,8 @@ format_helper_exit_status(unsigned char child_state, int saved_errno, cur = hex_errno; /* Emit child_state */ - written = format_hex_number_for_helper_exit_status(child_state, - cur, left); + written = format_hex_number_sigsafe(child_state, cur, left); + if (written <= 0) goto err; @@ -3520,8 +3519,7 @@ format_helper_exit_status(unsigned char child_state, int saved_errno, } /* Emit unsigned_errno */ - written = format_hex_number_for_helper_exit_status(unsigned_errno, - cur, left); + written = format_hex_number_sigsafe(unsigned_errno, cur, left); if (written <= 0) goto err; diff --git a/src/common/util.h b/src/common/util.h index ca6ce7c4c8..ad75266587 100644 --- a/src/common/util.h +++ b/src/common/util.h @@ -518,11 +518,12 @@ int32_t tor_weak_random_range(tor_weak_rng_t *rng, int32_t top); * <b>n</b> */ #define tor_weak_random_one_in_n(rng, n) (0==tor_weak_random_range((rng),(n))) +int format_hex_number_sigsafe(unsigned int x, char *buf, int max_len); + #ifdef UTIL_PRIVATE /* Prototypes for private functions only used by util.c (and unit tests) */ -STATIC int format_hex_number_for_helper_exit_status(unsigned int x, char *buf, - int max_len); +#ifndef _WIN32 STATIC int format_helper_exit_status(unsigned char child_state, int saved_errno, char *hex_errno); @@ -532,6 +533,8 @@ STATIC int format_helper_exit_status(unsigned char child_state, 1 + sizeof(int) * 2 + 1) #endif +#endif + const char *libor_get_digests(void); #endif |