mbox series

[RESEND,net-next,v5,0/3] Fix inefficiences and rename nla_strlcpy

Message ID 20201115170806.3578-1-laniel_francis@privacyrequired.com
Headers show
Series Fix inefficiences and rename nla_strlcpy | expand

Message

Francis Laniel Nov. 15, 2020, 5:08 p.m. UTC
From: Francis Laniel <laniel_francis@privacyrequired.com>

Hi.


I hope you are all fine and the same for your relatives.

This patch set answers to first three issues listed in:
https://github.com/KSPP/linux/issues/110

To sum up, the patch contributions are the following:
1. the first patch fixes an inefficiency where some bytes in dst were written
twice, one with 0 the other with src content.
2. The second one modifies nla_strlcpy to return the same value as strscpy,
i.e. number of bytes written or -E2BIG if src was truncated.
It also modifies code that calls nla_strlcpy and checks for its return value.
3. The third renames nla_strlcpy to nla_strscpy.

Unfortunately, I did not find how to create struct nlattr objects so I tested
my modifications on simple char* and with GDB using tc to get to
tcf_proto_check_kind.

If you see any way to improve the code or have any remark, feel free to comment.


Best regards and take care of yourselves.

Francis Laniel (3):
  Fix unefficient call to memset before memcpu in nla_strlcpy.
  Modify return value of nla_strlcpy to match that of strscpy.
  treewide: rename nla_strlcpy to nla_strscpy.

 drivers/infiniband/core/nldev.c            | 10 +++---
 drivers/net/can/vxcan.c                    |  4 +--
 drivers/net/veth.c                         |  4 +--
 include/linux/genl_magic_struct.h          |  2 +-
 include/net/netlink.h                      |  4 +--
 include/net/pkt_cls.h                      |  2 +-
 kernel/taskstats.c                         |  2 +-
 lib/nlattr.c                               | 42 ++++++++++++++--------
 net/core/fib_rules.c                       |  4 +--
 net/core/rtnetlink.c                       | 12 +++----
 net/decnet/dn_dev.c                        |  2 +-
 net/ieee802154/nl-mac.c                    |  2 +-
 net/ipv4/devinet.c                         |  2 +-
 net/ipv4/fib_semantics.c                   |  2 +-
 net/ipv4/metrics.c                         |  2 +-
 net/netfilter/ipset/ip_set_hash_netiface.c |  4 +--
 net/netfilter/nf_tables_api.c              |  6 ++--
 net/netfilter/nfnetlink_acct.c             |  2 +-
 net/netfilter/nfnetlink_cthelper.c         |  4 +--
 net/netfilter/nft_ct.c                     |  2 +-
 net/netfilter/nft_log.c                    |  2 +-
 net/netlabel/netlabel_mgmt.c               |  2 +-
 net/nfc/netlink.c                          |  2 +-
 net/sched/act_api.c                        |  2 +-
 net/sched/act_ipt.c                        |  2 +-
 net/sched/act_simple.c                     |  4 +--
 net/sched/cls_api.c                        |  2 +-
 net/sched/sch_api.c                        |  2 +-
 net/tipc/netlink_compat.c                  |  2 +-
 29 files changed, 73 insertions(+), 61 deletions(-)

Comments

Jakub Kicinski Nov. 16, 2020, 5:22 p.m. UTC | #1
On Sun, 15 Nov 2020 18:08:03 +0100 laniel_francis@privacyrequired.com
wrote:
> This patch set answers to first three issues listed in:
> https://github.com/KSPP/linux/issues/110
> 
> To sum up, the patch contributions are the following:
> 1. the first patch fixes an inefficiency where some bytes in dst were written
> twice, one with 0 the other with src content.
> 2. The second one modifies nla_strlcpy to return the same value as strscpy,
> i.e. number of bytes written or -E2BIG if src was truncated.
> It also modifies code that calls nla_strlcpy and checks for its return value.
> 3. The third renames nla_strlcpy to nla_strscpy.
> 
> Unfortunately, I did not find how to create struct nlattr objects so I tested
> my modifications on simple char* and with GDB using tc to get to
> tcf_proto_check_kind.
> 
> If you see any way to improve the code or have any remark, feel free to comment.
> 
> 
> Best regards and take care of yourselves.

Applied, thank you!
Francis Laniel Nov. 16, 2020, 6:17 p.m. UTC | #2
Le lundi 16 novembre 2020, 18:22:47 CET Jakub Kicinski a écrit :
> On Sun, 15 Nov 2020 18:08:03 +0100 laniel_francis@privacyrequired.com
> 
> wrote:
> > This patch set answers to first three issues listed in:
> > https://github.com/KSPP/linux/issues/110
> > 
> > To sum up, the patch contributions are the following:
> > 1. the first patch fixes an inefficiency where some bytes in dst were
> > written twice, one with 0 the other with src content.
> > 2. The second one modifies nla_strlcpy to return the same value as
> > strscpy,
> > i.e. number of bytes written or -E2BIG if src was truncated.
> > It also modifies code that calls nla_strlcpy and checks for its return
> > value. 3. The third renames nla_strlcpy to nla_strscpy.
> > 
> > Unfortunately, I did not find how to create struct nlattr objects so I
> > tested my modifications on simple char* and with GDB using tc to get to
> > tcf_proto_check_kind.
> > 
> > If you see any way to improve the code or have any remark, feel free to
> > comment.
> > 
> > 
> > Best regards and take care of yourselves.
> 
> Applied, thank you!

Perfect! You are welcome!