Fix FN when size_t, uintmax_t are passed as %Lx into scanf
This commit is contained in:
parent
c563917a5d
commit
703d86992d
|
@ -781,6 +781,9 @@ void CheckIO::checkFormatString(const Token * const tok,
|
|||
case 'L':
|
||||
if (argInfo.typeToken->str() != "long" || !argInfo.typeToken->isLong())
|
||||
invalidScanfArgTypeError_int(tok, numFormat, specifier, &argInfo, true);
|
||||
else if (typesMatch(argInfo.typeToken->originalName(), "size_t") ||
|
||||
argInfo.typeToken->originalName() == "uintmax_t")
|
||||
invalidScanfArgTypeError_int(tok, numFormat, specifier, &argInfo, true);
|
||||
break;
|
||||
default:
|
||||
if (argInfo.typeToken->str() != "int")
|
||||
|
|
|
@ -1310,15 +1310,15 @@ private:
|
|||
TEST_SCANF_WARN("%Lx", "unsigned long long", "double");
|
||||
TEST_SCANF_WARN("%Lx", "unsigned long long", "long double");
|
||||
TEST_SCANF_WARN("%Lx", "unsigned long long", "void *");
|
||||
TEST_SCANF_WARN_AKA_WIN32("%Lx", "unsigned long long", "size_t", "unsigned long");
|
||||
TEST_SCANF_WARN_AKA("%Lx", "unsigned long long", "size_t", "unsigned long", "unsigned long long");
|
||||
TEST_SCANF_WARN_AKA("%Lx", "unsigned long long", "ssize_t", "signed long", "signed long long");
|
||||
TEST_SCANF_WARN_AKA("%Lx", "unsigned long long", "ptrdiff_t", "signed long", "signed long long");
|
||||
TEST_SCANF_WARN_AKA_WIN32("%Lx", "unsigned long long", "unsigned ptrdiff_t", "unsigned long");
|
||||
TEST_SCANF_WARN_AKA("%Lx", "unsigned long long", "intmax_t", "signed long", "signed long long");
|
||||
TEST_SCANF_WARN_AKA_WIN32("%Lx", "unsigned long long", "uintmax_t", "unsigned long");
|
||||
TEST_SCANF_WARN_AKA("%Lx", "unsigned long long", "uintmax_t", "unsigned long", "unsigned long long");
|
||||
TEST_SCANF_WARN_AKA("%Lx", "unsigned long long", "intptr_t", "signed long", "signed long long");
|
||||
TEST_SCANF_WARN_AKA_WIN32("%Lx", "unsigned long long", "uintptr_t", "unsigned long");
|
||||
TEST_SCANF_WARN_AKA_WIN32("%Lx", "unsigned long long", "std::size_t", "unsigned long");
|
||||
TEST_SCANF_WARN_AKA("%Lx", "unsigned long long", "std::size_t", "unsigned long", "unsigned long long");
|
||||
TEST_SCANF_WARN_AKA("%Lx", "unsigned long long", "std::ssize_t", "signed long", "signed long long");
|
||||
TEST_SCANF_WARN_AKA("%Lx", "unsigned long long", "std::ptrdiff_t", "signed long", "signed long long");
|
||||
TEST_SCANF_WARN_AKA("%Lx", "unsigned long long", "std::intmax_t", "signed long", "signed long long");
|
||||
|
|
Loading…
Reference in New Issue