]> source.dussan.org Git - rspamd.git/commitdiff
[Minor] More fixes to plugin
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Thu, 17 Oct 2019 18:00:05 +0000 (19:00 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Thu, 17 Oct 2019 18:00:05 +0000 (19:00 +0100)
clang-plugin/printf_check.cc

index 9589f8d9cb9524f8efaccaaeb7b58be586fec181..cecd845a2b76dd02ad8aa734042be967f2d55cfd 100644 (file)
@@ -207,10 +207,12 @@ namespace rspamd {
                        case 'e':
                                return llvm::make_unique<PrintfArgChecker> (gerr_arg_handler,
                                                this->pcontext, this->ci);
-                       default:
-                               print_warning (std::string("unknown parser flag: ") + type,
+                       default: {
+                               auto err_msg = std::string ("unknown parser flag: ") + type;
+                               print_warning (err_msg.c_str(),
                                                e, this->pcontext, this->ci);
                                break;
+                               }
                        }
 
                        return nullptr;
@@ -436,7 +438,7 @@ namespace rspamd {
                                                                                << ", got " <<
                                                                (E->getNumArgs () - (pos + 1))
                                                                                << " args";
-                                               print_error (err_buf.str(), E, this->pcontext, this->ci);
+                                               print_error (err_buf.str().c_str(), E, this->pcontext, this->ci);
 
                                                return false;
                                        }
@@ -480,9 +482,9 @@ namespace rspamd {
                auto type = arg->getType ().split ().Ty;
 
                if (!type->isPointerType ()) {
-                       print_error (
-                                       std::string ("bad string argument for %s: ") +
-                                       arg->getType ().getAsString (),
+                       auto err_msg = std::string ("bad string argument for %s: ") +
+                                                  arg->getType ().getAsString ();
+                       print_error (err_msg.c_str(),
                                        arg, ctx->past, ctx->pci);
                        return false;
                }
@@ -499,9 +501,9 @@ namespace rspamd {
                                if (desugared_type) {
                                        desugared_type->dump ();
                                }
-                               print_error (
-                                               std::string ("bad string argument for %s: ") +
-                                                               arg->getType ().getAsString (),
+                               auto err_msg = std::string ("bad string argument for %s: ") +
+                                                          arg->getType ().getAsString ();
+                               print_error (err_msg.c_str(),
                                                arg, ctx->past, ctx->pci);
                                return false;
                        }
@@ -519,9 +521,9 @@ namespace rspamd {
                auto desugared_type = type->getUnqualifiedDesugaredType ();
 
                if (!desugared_type->isBuiltinType ()) {
-                       print_error (
-                                       std::string ("not a builtin type for ") + fmt + " arg: " +
-                                                       arg->getType ().getAsString (),
+                       auto err_msg = std::string ("not a builtin type for ") + fmt + " arg: " +
+                                                  arg->getType ().getAsString ();
+                       print_error (err_msg.c_str(),
                                        arg, ctx->past, ctx->pci);
                        return false;
                }
@@ -538,10 +540,12 @@ namespace rspamd {
                }
 
                if (!found) {
-                       print_error (
-                                       std::string ("bad argument for ") + fmt + " arg: " +
-                                       arg->getType ().getAsString () + ", resolved as: " +
-                                       builtin_type->getNameAsCString (ctx->past->getPrintingPolicy ()),
+                       auto err_msg = std::string ("bad argument for ") +
+                                                  fmt + " arg: " +
+                                                  arg->getType ().getAsString () +
+                                                  ", resolved as: " +
+                                                  builtin_type->getNameAsCString (ctx->past->getPrintingPolicy ());
+                       print_error (err_msg.c_str(),
                                        arg, ctx->past, ctx->pci);
                        return false;
                }
@@ -672,9 +676,9 @@ namespace rspamd {
                auto type = arg->getType ().split ().Ty;
 
                if (!type->isPointerType ()) {
-                       print_error (
-                                       std::string ("bad pointer argument for %p: ") +
-                                                       arg->getType ().getAsString (),
+                       auto err_msg = std::string ("bad pointer argument for %p: ") +
+                                                  arg->getType ().getAsString ();
+                       print_error (err_msg.c_str(),
                                        arg, ctx->past, ctx->pci);
                        return false;
                }
@@ -733,9 +737,9 @@ namespace rspamd {
                auto type = arg->getType ().split ().Ty;
 
                if (!type->isPointerType ()) {
-                       print_error (
-                                       std::string ("bad string argument for %s: ") +
-                                                       arg->getType ().getAsString (),
+                       auto err_msg = std::string ("non pointer argument for %s: ") +
+                                                  arg->getType ().getAsString ();
+                       print_error (err_msg.c_str(),
                                        arg, ctx->past, ctx->pci);
                        return false;
                }
@@ -744,9 +748,9 @@ namespace rspamd {
                auto desugared_type = ptr_type->getUnqualifiedDesugaredType ();
 
                if (!desugared_type->isRecordType ()) {
-                       print_error (
-                                       std::string ("not a record type for ") + fmt + " arg: " +
-                                                       arg->getType ().getAsString (),
+                       auto err_msg = std::string ("not a record type for ") + fmt + " arg: " +
+                                                  arg->getType ().getAsString ();
+                       print_error (err_msg.c_str(),
                                        arg, ctx->past, ctx->pci);
                        return false;
                }
@@ -756,9 +760,10 @@ namespace rspamd {
                auto struct_def = struct_decl->getNameAsString ();
 
                if (struct_def != sname) {
-                       print_error (std::string ("bad argument '") + struct_def + "' for "
-                                       + fmt + " arg: " +
-                                       arg->getType ().getAsString (),
+                       auto err_msg = std::string ("bad argument '") + struct_def + "' for "
+                                                  + fmt + " arg: " +
+                                                  arg->getType ().getAsString ();
+                       print_error (err_msg.c_str(),
                                        arg, ctx->past, ctx->pci);
                        return false;
                }