Index: src/OFASPrintF.h ================================================================== --- src/OFASPrintF.h +++ src/OFASPrintF.h @@ -27,13 +27,12 @@ OF_ASSUME_NONNULL_BEGIN #ifdef __cplusplus extern "C" { #endif -extern int OFASPrintF(char *_Nullable *_Nonnull, const char *_Nonnull, ...); extern int OFVASPrintF( char *_Nullable *_Nonnull, const char *_Nonnull, va_list); #ifdef __cplusplus } #endif OF_ASSUME_NONNULL_END Index: src/OFASPrintF.m ================================================================== --- src/OFASPrintF.m +++ src/OFASPrintF.m @@ -752,23 +752,10 @@ formatFieldWidthState, formatLengthModifierState, formatConversionSpecifierState }; -int -OFASPrintF(char **string, const char *format, ...) -{ - int ret; - va_list arguments; - - va_start(arguments, format); - ret = OFVASPrintF(string, format, arguments); - va_end(arguments); - - return ret; -} - int OFVASPrintF(char **string, const char *format, va_list arguments) { struct Context ctx; Index: src/OFStrFTime.m ================================================================== --- src/OFStrFTime.m +++ src/OFStrFTime.m @@ -13,16 +13,14 @@ * file. */ #include "config.h" -#include #include #include #import "OFStrFTime.h" -#import "OFASPrintF.h" #import "macros.h" static const char weekDays[7][4] = { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" }; @@ -61,11 +59,11 @@ break; case stateInConversionSpecifier:; const char *appendFormat; unsigned int value = 0; - char *append; + char append[5]; int appendLen; switch (format[i]) { case '%': appendFormat = "%%"; @@ -139,23 +137,22 @@ break; default: return 0; } - appendLen = OFASPrintF(&append, appendFormat, value); - if (appendLen < 0) + appendLen = snprintf(append, sizeof(append), + appendFormat, value); + if (appendLen < 0 || + (size_t)appendLen >= sizeof(append)) return 0; - if (bufferLen - j < (size_t)appendLen) { - free(append); + if (bufferLen - j < (size_t)appendLen) return 0; - } memcpy(buffer + j, append, appendLen); j += appendLen; - free(append); state = stateSearchConversionSpecifier; } } if (j >= bufferLen)