On 11 Sep 2025, at 10:41, Changliang Wu wrote:

Thanks for following up on this patch. We would still love a short commit 
message here.

One more comment below.

> Signed-off-by: Changliang Wu <changliang...@smartx.com>
> ---
>  lib/colors.c    | 2 +-
>  lib/lldp/lldp.c | 7 ++++---
>  lib/util.h      | 6 ++++++
>  3 files changed, 11 insertions(+), 4 deletions(-)
>
> diff --git a/lib/colors.c b/lib/colors.c
> index 13456445e..09cf07847 100644
> --- a/lib/colors.c
> +++ b/lib/colors.c
> @@ -117,7 +117,7 @@ colors_parse_from_env(const struct color_key color_dic[])
>           token != NULL;
>           token = strsep(&s, ":")) {
>          char *name = strsep(&token, "=");
> -        for (char *ptr = token; ptr != NULL && *ptr != '\0'; ptr++) {
> +        for (char *ptr = token; nullable_string_not_empty(ptr); ptr++) {
>              /* We accept only decimals and ';' for color marker. */
>              if (*ptr == ';' || (*ptr >= '0' && *ptr <= '9')) {
>                  continue;
> diff --git a/lib/lldp/lldp.c b/lib/lldp/lldp.c
> index 6fdcfef56..570c79e13 100644
> --- a/lib/lldp/lldp.c
> +++ b/lib/lldp/lldp.c
> @@ -28,6 +28,7 @@
>  #include "compiler.h"
>  #include "dp-packet.h"
>  #include "packets.h"
> +#include "util.h"
>
>  VLOG_DEFINE_THIS_MODULE(lldp);
>
> @@ -191,14 +192,14 @@ lldp_send(struct lldpd *global OVS_UNUSED,
>      lldp_tlv_end(p, start);
>
>      /* System name */
> -    if (chassis->c_name && *chassis->c_name != '\0') {
> +    if (nullable_string_not_empty(chassis->c_name)) {
>          lldp_tlv_start(p, LLDP_TLV_SYSTEM_NAME, &start);
>          dp_packet_put(p, chassis->c_name, strlen(chassis->c_name));
>          lldp_tlv_end(p, start);
>      }
>
>      /* System description (skip it if empty) */
> -    if (chassis->c_descr && *chassis->c_descr != '\0') {
> +    if (nullable_string_not_empty(chassis->c_descr)) {
>          lldp_tlv_start(p, LLDP_TLV_SYSTEM_DESCR, &start);
>          dp_packet_put(p, chassis->c_descr, strlen(chassis->c_descr));
>          lldp_tlv_end(p, start);
> @@ -231,7 +232,7 @@ lldp_send(struct lldpd *global OVS_UNUSED,
>      }
>
>      /* Port description */
> -    if (port->p_descr && *port->p_descr != '\0') {
> +    if (nullable_string_not_empty(port->p_descr)) {
>          lldp_tlv_start(p, LLDP_TLV_PORT_DESCR, &start);
>          dp_packet_put(p, port->p_descr, strlen(port->p_descr));
>          lldp_tlv_end(p, start);
> diff --git a/lib/util.h b/lib/util.h
> index c1fd120bc..b3928badb 100644
> --- a/lib/util.h
> +++ b/lib/util.h
> @@ -197,6 +197,12 @@ void free_pagealign(void *);
>  OVS_RETURNS_NONNULL void *xmalloc_size_align(size_t, size_t) MALLOC_LIKE;
>  void free_size_align(void *);
>
> +static inline bool
> +nullable_string_not_empty(const char *s)

It’s a bit longer, but for consistency, I would include “is” in the function 
name, i.e., nullable_string_is_not_empty().

However, I would personally prefer the reverse of this function, i.e., 
str_is_null_or_empty(), possibly in addition to a nullable_strlen() (though 
that wouldn’t provide any performance benefit in this case).

> +{
> +    return s && *s != '\0';
> +}
> +
>  /* The C standards say that neither the 'dst' nor 'src' argument to
>   * memcpy() may be null, even if 'n' is zero.  This wrapper tolerates
>   * the null case. */
> -- 
> 2.43.5

_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to