diff options
Diffstat (limited to 'contrib/file/src/vasprintf.c')
-rw-r--r-- | contrib/file/src/vasprintf.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/contrib/file/src/vasprintf.c b/contrib/file/src/vasprintf.c index 9b2cecb3ca75..940e8a4a3630 100644 --- a/contrib/file/src/vasprintf.c +++ b/contrib/file/src/vasprintf.c @@ -108,7 +108,7 @@ you use strange formats. #include "file.h" #ifndef lint -FILE_RCSID("@(#)$File: vasprintf.c,v 1.19 2021/02/23 00:51:11 christos Exp $") +FILE_RCSID("@(#)$File: vasprintf.c,v 1.23 2022/09/24 20:30:13 christos Exp $") #endif /* lint */ #include <assert.h> @@ -139,8 +139,6 @@ typedef struct { size_t pseudo_len; /* total length of output text if it were not limited in size */ size_t maxlen; va_list vargs; /* pointer to current position into vargs */ - char * sprintf_string; - FILE * fprintf_file; } xprintf_struct; /* @@ -595,8 +593,6 @@ static int core(xprintf_struct *s) } /* for (v)asnprintf */ - dummy_base = s->buffer_base; - dummy_base = s->buffer_base + s->real_len; save_len = s->real_len; @@ -625,6 +621,7 @@ int vasprintf(char **ptr, const char *format_string, va_list vargs) xprintf_struct s; int retval; + memset(&s, 0, sizeof(s)); s.src_string = format_string; #ifdef va_copy va_copy (s.vargs, vargs); @@ -635,7 +632,7 @@ int vasprintf(char **ptr, const char *format_string, va_list vargs) # ifdef WIN32 s.vargs = vargs; # else - memcpy (&s.vargs, &vargs, sizeof (s.va_args)); + memcpy (&s.vargs, &vargs, sizeof (s.vargs)); # endif /* WIN32 */ # endif /* __va_copy */ #endif /* va_copy */ |