Re: [PATCH 06/11] sysctl: Add size to register_net_sysctl function

Dan Carpenter
2023-06-21T10:49:54Z

[-- Attachment #1: Type: text/plain, Size: 737 bytes --]

On Wed, Jun 21, 2023 at 12:47:30PM +0300, Dan Carpenter wrote:
> The patchset doesn't include the actual interesting changes, just a
> bunch of mechanical prep work.
>

I was wrong here, the patchset just hadn't all hit the mailing lists.
I can't apply this patchset to anything. I tried linux-next, net, and
net-next. So it's hard to review.

It looks like ensure_safe_net_sysctl() never got update to use
table_size...

You could easily write a static checker test to print a warning any time
that ->procname is checked for NULL. I have attached a Smatch check.
You would need to added to check_list.h and recompile.

net/sysctl_net.c:130 ensure_safe_net_sysctl() warn: checking ->procname 'ent->procname'

regards,
dan carpenter

[-- Attachment #2: check_checking_procname.c --]
[-- Type: text/x-csrc, Size: 481 bytes --]

#include "smatch.h"
#include "smatch_slist.h"

static int my_id;

static void match_condition(struct expression *expr)
{
char *member_name;

if (expr->type == EXPR_COMPARE)
return;

member_name = get_member_name(expr);
if (!member_name)
return;

if (strcmp(member_name, "(struct ctl_table)->procname") == 0)
sm_warning("checking ->procname '%s'", expr_to_str(expr));
}

void check_checking_procname(int id)
{
my_id = id;

add_hook(&match_condition, CONDITION_HOOK);
}