1
0
mirror of https://github.com/cc65/cc65.git synced 2024-06-08 15:29:37 +00:00

fix UB in xvsnprintf

This commit is contained in:
paul moore 2023-12-09 11:07:49 -08:00
parent 519a52d92c
commit cc3d89dbec

View File

@ -352,13 +352,13 @@ static void StoreOffset (PrintfCtrl* P)
/* Store the current output offset (%n format spec) */
{
switch (P->LengthMod) {
case lmChar: *va_arg (P->ap, int*) = P->BufFill; break;
case lmShort: *va_arg (P->ap, int*) = P->BufFill; break;
case lmInt: *va_arg (P->ap, int*) = P->BufFill; break;
case lmLong: *va_arg (P->ap, long*) = P->BufFill; break;
case lmIntMax: *va_arg (P->ap, intmax_t*) = P->BufFill; break;
case lmSizeT: *va_arg (P->ap, size_t*) = P->BufFill; break;
case lmPtrDiffT: *va_arg (P->ap, ptrdiff_t*) = P->BufFill; break;
case lmChar: *va_arg (P->ap, char*) = (char)P->BufFill; break;
case lmShort: *va_arg (P->ap, short*) = (short)P->BufFill; break;
case lmInt: *va_arg (P->ap, int*) = (int)P->BufFill; break;
case lmLong: *va_arg (P->ap, long*) = (long)P->BufFill; break;
case lmIntMax: *va_arg (P->ap, intmax_t*) = (intmax_t)P->BufFill; break;
case lmSizeT: *va_arg (P->ap, size_t*) = (size_t)P->BufFill; break;
case lmPtrDiffT: *va_arg (P->ap, ptrdiff_t*) = (ptrdiff_t)P->BufFill; break;
default: FAIL ("Invalid size modifier for %n format spec. in xvsnprintf()");
}
}