Skip to content

Commit

Permalink
[Minor] More fixes to plugin
Browse files Browse the repository at this point in the history
  • Loading branch information
vstakhov committed Oct 17, 2019
1 parent 5f453d2 commit d670c33
Showing 1 changed file with 33 additions and 28 deletions.
61 changes: 33 additions & 28 deletions clang-plugin/printf_check.cc
Expand Up @@ -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;
Expand Down Expand Up @@ -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;
}
Expand Down Expand Up @@ -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;
}
Expand All @@ -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;
}
Expand All @@ -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;
}
Expand All @@ -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;
}
Expand Down Expand Up @@ -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;
}
Expand Down Expand Up @@ -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;
}
Expand All @@ -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;
}
Expand All @@ -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;
}
Expand Down

0 comments on commit d670c33

Please sign in to comment.