Skip to content
  • Taehee Yoo's avatar
    netfilter: xt_IDLETIMER: add sysfs filename checking routine · f184d303
    Taehee Yoo authored
    [ Upstream commit 54451f60c8fa061af9051a53be9786393947367c ]
    
    When IDLETIMER rule is added, sysfs file is created under
    /sys/class/xt_idletimer/timers/
    But some label name shouldn't be used.
    ".", "..", "power", "uevent", "subsystem", etc...
    So that sysfs filename checking routine is needed.
    
    test commands:
       %iptables -I INPUT -j IDLETIMER --timeout 1 --label "power"
    
    splat looks like:
    [95765.423132] sysfs: cannot create duplicate filename '/devices/virtual/xt_idletimer/timers/power'
    [95765.433418] CPU: 0 PID: 8446 Comm: iptables Not tainted 4.19.0-rc6+ #20
    [95765.449755] Call Trace:
    [95765.449755]  dump_stack+0xc9/0x16b
    [95765.449755]  ? show_regs_print_info+0x5/0x5
    [95765.449755]  sysfs_warn_dup+0x74/0x90
    [95765.449755]  sysfs_add_file_mode_ns+0x352/0x500
    [95765.449755]  sysfs_create_file_ns+0x179/0x270
    [95765.449755]  ? sysfs_add_file_mode_ns+0x500/0x500
    [95765.449755]  ? idletimer_tg_checkentry+0x3e5/0xb1b [xt_IDLETIMER]
    [95765.449755]  ? rcu_read_lock_sched_held+0x114/0x130
    [95765.449755]  ? __kmalloc_track_caller+0x211/0x2b0
    [95765.449755]  ? memcpy+0x34/0x50
    [95765.449755]  idletimer_tg_checkentry+0x4e2/0xb1b [xt_IDLETIMER]
    [ ... ]
    
    Fixes: 0902b469
    
     ("netfilter: xtables: idletimer target implementation")
    Signed-off-by: default avatarTaehee Yoo <ap420073@gmail.com>
    Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
    f184d303