From 336e61b2302bd34e0e80af1bb38533d4f1a912ba Mon Sep 17 00:00:00 2001 From: Alexander Golubev Date: Sat, 16 Mar 2024 19:05:22 +0300 Subject: [PATCH] Fix TQString::sprintf() not calling va_end() in case of bad cformat Also rearrange code a bit so it would be obvious that the function doesn't return a dangling reference. Signed-off-by: Alexander Golubev (cherry picked from commit bcda4011918a88064d35908b089a3300e187245a) --- src/tools/qstring.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/tools/qstring.cpp b/src/tools/qstring.cpp index e12c2344..a7256e35 100644 --- a/src/tools/qstring.cpp +++ b/src/tools/qstring.cpp @@ -2622,13 +2622,12 @@ TQString &TQString::sprintf(const char *cformat, ...) if ( !cformat || !*cformat ) { // TQt 1.x compat *this = fromLatin1( "" ); - return *this; + } else { + vsprintf(cformat, ap); } - TQString &s = vsprintf(cformat, ap); - va_end(ap); - return s; + return *this; } TQString &TQString::vsprintf( const char* cformat, va_list ap )