]> source.dussan.org Git - rspamd.git/commitdiff
Fix issues in reading format strings
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Wed, 11 Nov 2015 14:32:25 +0000 (14:32 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Wed, 11 Nov 2015 14:32:25 +0000 (14:32 +0000)
clang-plugin/printf_check.cc

index 5ebbeef1f67bb90fbb8e90a894d5587f98e71122..37e8dc3998992452fb244218dfa3af2f6804842c 100644 (file)
@@ -87,7 +87,7 @@ namespace rspamd {
        };
 
        class PrintfCheckVisitor::impl {
-               std::unordered_map<std::string, int> printf_functions;
+               std::unordered_map<std::string, unsigned int> printf_functions;
                ASTContext *pcontext;
 
                std::unique_ptr<PrintfArgChecker> parseFlags (const std::string &flags)
@@ -215,7 +215,13 @@ namespace rspamd {
                                                        llvm::errs () << "invalid modifier\n";
                                                        return nullptr;
                                                }
-                                               state = ignore_chars;
+
+                                               if (c == '%') {
+                                                       state = read_percent;
+                                               }
+                                               else {
+                                                       state = ignore_chars;
+                                               }
                                        }
                                        else {
                                                flags.push_back (c);