diff options
author | Matthias Andree <matthias.andree@gmx.de> | 2021-07-07 16:22:57 +0200 |
---|---|---|
committer | Matthias Andree <matthias.andree@gmx.de> | 2021-07-28 18:26:01 +0200 |
commit | c546c8299243a10a7b85c638e0e61396ecd5d8b5 (patch) | |
tree | ed9366f66df54cd33f072faae458b1e2cc92e095 /smbutil.c | |
parent | d2f0bbde20a0e1b1c6ec3cf326ef4035829b392c (diff) | |
download | fetchmail-c546c8299243a10a7b85c638e0e61396ecd5d8b5.tar.gz fetchmail-c546c8299243a10a7b85c638e0e61396ecd5d8b5.tar.bz2 fetchmail-c546c8299243a10a7b85c638e0e61396ecd5d8b5.zip |
Fix SIGSEGV when resizing report*() buffer.
Reported (with a different patch suggestion) by
Christian Herdtweck <christian.herdtweck@intra2net.com>.
Note that vsnprintf() calls va_arg(), and depending on operating system,
compiler, configuration, this will invalidate the va_list argument
pointer, so that va_start has to be called again before a subsequent
vsnprintf(). However, it is better to do away with the loop and the
trial-and-error, and leverage the return value of vsnprintf instead for
a direct one-off resizing, whilst taking into account that on SUSv2
systems, the return value can be useless if the size argument to
vsnprintf is 0.
Diffstat (limited to 'smbutil.c')
0 files changed, 0 insertions, 0 deletions