diff options
author | Nick Mathewson <nickm@torproject.org> | 2012-01-16 15:07:58 -0500 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2012-01-16 15:07:58 -0500 |
commit | 2bd40a8eb0be195022558addb868edf56162f9dc (patch) | |
tree | 7e234f80696dd17f212afba95b75e81a632bd03e /src/common | |
parent | 79bb44c219af8f88573fb33954e5d2e16ef8fe42 (diff) | |
parent | 5579bc0eafc7ef426922e23340a5f885f8e8d4e9 (diff) | |
download | tor-2bd40a8eb0be195022558addb868edf56162f9dc.tar tor-2bd40a8eb0be195022558addb868edf56162f9dc.tar.gz |
Merge branch 'bug4889_v2'
Diffstat (limited to 'src/common')
-rw-r--r-- | src/common/compat.c | 16 | ||||
-rw-r--r-- | src/common/util.c | 23 | ||||
-rw-r--r-- | src/common/util.h | 4 |
3 files changed, 12 insertions, 31 deletions
diff --git a/src/common/compat.c b/src/common/compat.c index ff9d877cd..3af43e80c 100644 --- a/src/common/compat.c +++ b/src/common/compat.c @@ -1351,31 +1351,19 @@ log_credential_status(void) return -1; } else { int i, retval = 0; - char *strgid; char *s = NULL; smartlist_t *elts = smartlist_create(); for (i = 0; i<ngids; i++) { - strgid = tor_malloc(11); - if (tor_snprintf(strgid, 11, "%u", (unsigned)sup_gids[i]) < 0) { - log_warn(LD_GENERAL, "Error printing supplementary GIDs"); - tor_free(strgid); - retval = -1; - goto error; - } - smartlist_add(elts, strgid); + smartlist_add_asprintf(elts, "%u", (unsigned)sup_gids[i]); } s = smartlist_join_strings(elts, " ", 0, NULL); log_fn(CREDENTIAL_LOG_LEVEL, LD_GENERAL, "Supplementary groups are: %s",s); - error: tor_free(s); - SMARTLIST_FOREACH(elts, char *, cp, - { - tor_free(cp); - }); + SMARTLIST_FOREACH(elts, char *, cp, tor_free(cp)); smartlist_free(elts); tor_free(sup_gids); diff --git a/src/common/util.c b/src/common/util.c index 22c816abc..3d8b7dabe 100644 --- a/src/common/util.c +++ b/src/common/util.c @@ -1964,7 +1964,6 @@ int start_writing_to_file(const char *fname, int open_flags, int mode, open_file_t **data_out) { - size_t tempname_len = strlen(fname)+16; open_file_t *new_file = tor_malloc_zero(sizeof(open_file_t)); const char *open_name; int append = 0; @@ -1975,7 +1974,6 @@ start_writing_to_file(const char *fname, int open_flags, int mode, tor_assert((open_flags & (O_BINARY|O_TEXT)) != 0); #endif new_file->fd = -1; - tor_assert(tempname_len > strlen(fname)); /*check for overflow*/ new_file->filename = tor_strdup(fname); if (open_flags & O_APPEND) { open_name = fname; @@ -1983,11 +1981,8 @@ start_writing_to_file(const char *fname, int open_flags, int mode, append = 1; open_flags &= ~O_APPEND; } else { - open_name = new_file->tempname = tor_malloc(tempname_len); - if (tor_snprintf(new_file->tempname, tempname_len, "%s.tmp", fname)<0) { - log_warn(LD_GENERAL, "Failed to generate filename"); - goto err; - } + tor_asprintf(&new_file->tempname, "%s.tmp", fname); + open_name = new_file->tempname; /* We always replace an existing temporary file if there is one. */ open_flags |= O_CREAT|O_TRUNC; open_flags &= ~O_EXCL; @@ -2757,17 +2752,17 @@ tor_sscanf(const char *buf, const char *pattern, ...) /** Append the string produced by tor_asprintf(<b>pattern</b>, <b>...</b>) * to <b>sl</b>. */ void -smartlist_asprintf_add(struct smartlist_t *sl, const char *pattern, ...) +smartlist_add_asprintf(struct smartlist_t *sl, const char *pattern, ...) { va_list ap; va_start(ap, pattern); - smartlist_vasprintf_add(sl, pattern, ap); + smartlist_add_vasprintf(sl, pattern, ap); va_end(ap); } -/** va_list-based backend of smartlist_asprintf_add. */ +/** va_list-based backend of smartlist_add_asprintf. */ void -smartlist_vasprintf_add(struct smartlist_t *sl, const char *pattern, +smartlist_add_vasprintf(struct smartlist_t *sl, const char *pattern, va_list args) { char *str = NULL; @@ -2786,14 +2781,12 @@ tor_listdir(const char *dirname) { smartlist_t *result; #ifdef MS_WINDOWS - char *pattern; + char *pattern=NULL; TCHAR tpattern[MAX_PATH] = {0}; char name[MAX_PATH] = {0}; HANDLE handle; WIN32_FIND_DATA findData; - size_t pattern_len = strlen(dirname)+16; - pattern = tor_malloc(pattern_len); - tor_snprintf(pattern, pattern_len, "%s\\*", dirname); + tor_asprintf(&pattern, "%s\\*", dirname); #ifdef UNICODE mbstowcs(tpattern,pattern,MAX_PATH); #else diff --git a/src/common/util.h b/src/common/util.h index cbc56d081..b15b1ea56 100644 --- a/src/common/util.h +++ b/src/common/util.h @@ -218,9 +218,9 @@ int tor_sscanf(const char *buf, const char *pattern, ...) #endif ; -void smartlist_asprintf_add(struct smartlist_t *sl, const char *pattern, ...) +void smartlist_add_asprintf(struct smartlist_t *sl, const char *pattern, ...) CHECK_PRINTF(2, 3); -void smartlist_vasprintf_add(struct smartlist_t *sl, const char *pattern, +void smartlist_add_vasprintf(struct smartlist_t *sl, const char *pattern, va_list args); int hex_decode_digit(char c); |