diff options
author | Brad Smith <brad@comstyle.com> | 2024-07-25 18:57:14 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-07-25 18:57:14 -0400 |
commit | e788788c42fcbed5077b13f8bb88a81a832ab6eb (patch) | |
tree | ae87c18f6f5e2b2ffdf3884889dfcfdfb848a117 /clang/lib/Sema/SemaChecking.cpp | |
parent | b27360c346a529affde40150f46b967b616a2144 (diff) | |
download | llvm-e788788c42fcbed5077b13f8bb88a81a832ab6eb.zip llvm-e788788c42fcbed5077b13f8bb88a81a832ab6eb.tar.gz llvm-e788788c42fcbed5077b13f8bb88a81a832ab6eb.tar.bz2 |
[clang][Sema] Add support for OpenBSD's syslog format attribute (#97366)
Diffstat (limited to 'clang/lib/Sema/SemaChecking.cpp')
-rw-r--r-- | clang/lib/Sema/SemaChecking.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/clang/lib/Sema/SemaChecking.cpp b/clang/lib/Sema/SemaChecking.cpp index bde92e0..07a34fd 100644 --- a/clang/lib/Sema/SemaChecking.cpp +++ b/clang/lib/Sema/SemaChecking.cpp @@ -6030,7 +6030,7 @@ static const Expr *maybeConstEvalStringLiteral(ASTContext &Context, Sema::FormatStringType Sema::GetFormatStringType(const FormatAttr *Format) { return llvm::StringSwitch<FormatStringType>(Format->getType()->getName()) .Case("scanf", FST_Scanf) - .Cases("printf", "printf0", FST_Printf) + .Cases("printf", "printf0", "syslog", FST_Printf) .Cases("NSString", "CFString", FST_NSString) .Case("strftime", FST_Strftime) .Case("strfmon", FST_Strfmon) @@ -6124,6 +6124,7 @@ bool Sema::CheckFormatArguments(ArrayRef<const Expr *> Args, case FST_Kprintf: case FST_FreeBSDKPrintf: case FST_Printf: + case FST_Syslog: Diag(FormatLoc, diag::note_format_security_fixit) << FixItHint::CreateInsertion(FormatLoc, "\"%s\", "); break; @@ -7860,7 +7861,7 @@ static void CheckFormatString( if (Type == Sema::FST_Printf || Type == Sema::FST_NSString || Type == Sema::FST_FreeBSDKPrintf || Type == Sema::FST_OSLog || - Type == Sema::FST_OSTrace) { + Type == Sema::FST_OSTrace || Type == Sema::FST_Syslog) { CheckPrintfHandler H( S, FExpr, OrigFormatExpr, Type, firstDataArg, numDataArgs, (Type == Sema::FST_NSString || Type == Sema::FST_OSTrace), Str, APK, |