2023-02-06 16:13:50

by Andy Shevchenko

[permalink] [raw]
Subject: [PATCH net-next v2 1/3] string_helpers: Move string_is_valid() to the header

Move string_is_valid() to the header for wider use.

Signed-off-by: Andy Shevchenko <[email protected]>
Reviewed-by: Simon Horman <[email protected]>
---
v2: added tag and updated subject (Simon)
include/linux/string_helpers.h | 5 +++++
net/tipc/netlink_compat.c | 6 +-----
2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/include/linux/string_helpers.h b/include/linux/string_helpers.h
index 88fb8e1d0421..01c9a432865a 100644
--- a/include/linux/string_helpers.h
+++ b/include/linux/string_helpers.h
@@ -12,6 +12,11 @@ struct device;
struct file;
struct task_struct;

+static inline bool string_is_valid(const char *s, int len)
+{
+ return memchr(s, '\0', len) ? true : false;
+}
+
/* Descriptions of the types of units to
* print in */
enum string_size_units {
diff --git a/net/tipc/netlink_compat.c b/net/tipc/netlink_compat.c
index dfea27a906f2..75186cd551a0 100644
--- a/net/tipc/netlink_compat.c
+++ b/net/tipc/netlink_compat.c
@@ -39,6 +39,7 @@
#include "node.h"
#include "net.h"
#include <net/genetlink.h>
+#include <linux/string_helpers.h>
#include <linux/tipc_config.h>

/* The legacy API had an artificial message length limit called
@@ -173,11 +174,6 @@ static struct sk_buff *tipc_get_err_tlv(char *str)
return buf;
}

-static inline bool string_is_valid(char *s, int len)
-{
- return memchr(s, '\0', len) ? true : false;
-}
-
static int __tipc_nl_compat_dumpit(struct tipc_nl_compat_cmd_dump *cmd,
struct tipc_nl_compat_msg *msg,
struct sk_buff *arg)
--
2.39.1



2023-02-06 16:14:19

by Andy Shevchenko

[permalink] [raw]
Subject: [PATCH net-next v2 2/3] genetlink: Use string_is_valid() helper

Use string_is_valid() helper instead of cpecific memchr() call.
This shows better the intention of the call.

Signed-off-by: Andy Shevchenko <[email protected]>
Reviewed-by: Simon Horman <[email protected]>
---
v2: added tag and updated subject (Simon)
net/netlink/genetlink.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/net/netlink/genetlink.c b/net/netlink/genetlink.c
index 600993c80050..d7616c1bda93 100644
--- a/net/netlink/genetlink.c
+++ b/net/netlink/genetlink.c
@@ -13,7 +13,7 @@
#include <linux/errno.h>
#include <linux/types.h>
#include <linux/socket.h>
-#include <linux/string.h>
+#include <linux/string_helpers.h>
#include <linux/skbuff.h>
#include <linux/mutex.h>
#include <linux/bitmap.h>
@@ -457,7 +457,7 @@ static int genl_validate_assign_mc_groups(struct genl_family *family)

if (WARN_ON(grp->name[0] == '\0'))
return -EINVAL;
- if (WARN_ON(memchr(grp->name, '\0', GENL_NAMSIZ) == NULL))
+ if (WARN_ON(!string_is_valid(grp->name, GENL_NAMSIZ)))
return -EINVAL;
}

--
2.39.1


2023-02-08 04:30:42

by Jakub Kicinski

[permalink] [raw]
Subject: Re: [PATCH net-next v2 1/3] string_helpers: Move string_is_valid() to the header

On Mon, 6 Feb 2023 18:13:12 +0200 Andy Shevchenko wrote:
> +static inline bool string_is_valid(const char *s, int len)
> +{
> + return memchr(s, '\0', len) ? true : false;
> +}

I was tempted to suggest adding a kdoc, but perhaps the function
doesn't have an obvious enough name? Maybe we should call the helper
string_is_terminated(), instead?

2023-02-08 11:18:19

by Andy Shevchenko

[permalink] [raw]
Subject: Re: [PATCH net-next v2 1/3] string_helpers: Move string_is_valid() to the header

On Wed, Feb 8, 2023 at 6:29 AM Jakub Kicinski <[email protected]> wrote:
> On Mon, 6 Feb 2023 18:13:12 +0200 Andy Shevchenko wrote:
> > +static inline bool string_is_valid(const char *s, int len)
> > +{
> > + return memchr(s, '\0', len) ? true : false;
> > +}
>
> I was tempted to suggest adding a kdoc, but perhaps the function
> doesn't have an obvious enough name? Maybe we should call the helper
> string_is_terminated(), instead?

Sure.

--
With Best Regards,
Andy Shevchenko