Re: [Linuxptp-devel] [PATCH RFC 15/30] Convert call sites to the proper method for setting the name.

2020-02-18 Thread Jacob Keller



On 2/11/2020 6:04 AM, Richard Cochran wrote:
> Signed-off-by: Richard Cochran 

Reviewed-by: Jacob Keller 

> ---
>  clock.c  | 5 +++--
>  config.c | 2 +-
>  pmc_common.c | 2 +-
>  3 files changed, 5 insertions(+), 4 deletions(-)
> 
> diff --git a/clock.c b/clock.c
> index 3895d09..159fcb2 100644
> --- a/clock.c
> +++ b/clock.c
> @@ -850,6 +850,7 @@ struct clock *clock_create(enum clock_type type, struct 
> config *config,
>   int fadj = 0, max_adj = 0, sw_ts;
>   int phc_index, required_modes = 0;
>   struct clock *c = _clock;
> + const char *uds_ifname;
>   struct port *p;
>   unsigned char oui[OUI_LEN];
>   char phc[32], *tmp;
> @@ -999,8 +1000,8 @@ struct clock *clock_create(enum clock_type type, struct 
> config *config,
>   }
>  
>   /* Configure the UDS. */
> - snprintf(udsif->name, sizeof(udsif->name), "%s",
> -  config_get_string(config, NULL, "uds_address"));
> + uds_ifname = config_get_string(config, NULL, "uds_address");
> + interface_set_name(udsif, uds_ifname);

This used to do an snprintf and now it does a strncpy. This is slightly
different because snprintf will null terminate while strncpy won't
guarantee this.. However we now copy by MAX_IFNAME_SIZE rather than
snprintf's "full" size. This means that the function will guarantee to
be null terminated if the original data starts as zero-allocated.

Perhaps the interface_set_name should guarantee the last byte is zero
just in case the interface structure is not per-initialized with zeros.

Thanks,
Jake

>   if (config_set_section_int(config, interface_name(udsif),
>  "announceReceiptTimeout", 0)) {
>   return NULL;
> diff --git a/config.c b/config.c
> index c30f6bc..717ee65 100644
> --- a/config.c
> +++ b/config.c
> @@ -835,7 +835,7 @@ struct interface *config_create_interface(const char 
> *name, struct config *cfg)
>   return NULL;
>   }
>  
> - strncpy(iface->name, name, MAX_IFNAME_SIZE);
> + interface_set_name(iface, name);
>   STAILQ_INSERT_TAIL(>interfaces, iface, list);
>   cfg->n_interfaces++;
>  
> diff --git a/pmc_common.c b/pmc_common.c
> index 6bdaa94..41181fb 100644
> --- a/pmc_common.c
> +++ b/pmc_common.c
> @@ -350,7 +350,7 @@ struct pmc *pmc_create(struct config *cfg, enum 
> transport_type transport_type,
>   goto failed;
>   }
>  
> - strncpy(iface.name, iface_name, MAX_IFNAME_SIZE);
> + interface_set_name(, iface_name);
>   interface_ensure_tslabel();
>  
>   if (transport_open(pmc->transport, ,
> 


___
Linuxptp-devel mailing list
Linuxptp-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxptp-devel


[Linuxptp-devel] [PATCH RFC 15/30] Convert call sites to the proper method for setting the name.

2020-02-11 Thread Richard Cochran
Signed-off-by: Richard Cochran 
---
 clock.c  | 5 +++--
 config.c | 2 +-
 pmc_common.c | 2 +-
 3 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/clock.c b/clock.c
index 3895d09..159fcb2 100644
--- a/clock.c
+++ b/clock.c
@@ -850,6 +850,7 @@ struct clock *clock_create(enum clock_type type, struct 
config *config,
int fadj = 0, max_adj = 0, sw_ts;
int phc_index, required_modes = 0;
struct clock *c = _clock;
+   const char *uds_ifname;
struct port *p;
unsigned char oui[OUI_LEN];
char phc[32], *tmp;
@@ -999,8 +1000,8 @@ struct clock *clock_create(enum clock_type type, struct 
config *config,
}
 
/* Configure the UDS. */
-   snprintf(udsif->name, sizeof(udsif->name), "%s",
-config_get_string(config, NULL, "uds_address"));
+   uds_ifname = config_get_string(config, NULL, "uds_address");
+   interface_set_name(udsif, uds_ifname);
if (config_set_section_int(config, interface_name(udsif),
   "announceReceiptTimeout", 0)) {
return NULL;
diff --git a/config.c b/config.c
index c30f6bc..717ee65 100644
--- a/config.c
+++ b/config.c
@@ -835,7 +835,7 @@ struct interface *config_create_interface(const char *name, 
struct config *cfg)
return NULL;
}
 
-   strncpy(iface->name, name, MAX_IFNAME_SIZE);
+   interface_set_name(iface, name);
STAILQ_INSERT_TAIL(>interfaces, iface, list);
cfg->n_interfaces++;
 
diff --git a/pmc_common.c b/pmc_common.c
index 6bdaa94..41181fb 100644
--- a/pmc_common.c
+++ b/pmc_common.c
@@ -350,7 +350,7 @@ struct pmc *pmc_create(struct config *cfg, enum 
transport_type transport_type,
goto failed;
}
 
-   strncpy(iface.name, iface_name, MAX_IFNAME_SIZE);
+   interface_set_name(, iface_name);
interface_ensure_tslabel();
 
if (transport_open(pmc->transport, ,
-- 
2.20.1



___
Linuxptp-devel mailing list
Linuxptp-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxptp-devel