Skip to content

Commit

Permalink
net: lib: ptp: Fix issues raised by static analyzer
Browse files Browse the repository at this point in the history
Fix minor issues reported by static analysis tool.

(cherry picked from commit 3b78e76)

Original-Signed-off-by: Adam Wojasinski <awojasinski@baylibre.com>
GitOrigin-RevId: 3b78e76
Change-Id: I5e37097d3b7522d9ab7743a6182659101baf4ca7
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/zephyr/+/5666206
Reviewed-by: Ting Shen <phoenixshen@chromium.org>
Tested-by: Ting Shen <phoenixshen@chromium.org>
Commit-Queue: Ting Shen <phoenixshen@chromium.org>
Tested-by: ChromeOS Prod (Robot) <chromeos-ci-prod@chromeos-bot.iam.gserviceaccount.com>
  • Loading branch information
awojasinski authored and Chromeos LUCI committed Jun 28, 2024
1 parent e514ebe commit e7437b1
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 17 deletions.
3 changes: 1 addition & 2 deletions subsys/net/lib/ptp/msg.c
Original file line number Diff line number Diff line change
Expand Up @@ -284,13 +284,12 @@ struct ptp_msg *ptp_msg_from_pkt(struct net_pkt *pkt)
hdr = net_udp_get_hdr(pkt, NULL);
}

payload = ntohs(hdr->len) - NET_UDPH_LEN;

if (!hdr) {
LOG_ERR("Couldn't retrieve UDP header from the net packet");
return NULL;
}

payload = ntohs(hdr->len) - NET_UDPH_LEN;
port = ntohs(hdr->dst_port);

if (port != PTP_SOCKET_PORT_EVENT && port != PTP_SOCKET_PORT_GENERAL) {
Expand Down
26 changes: 14 additions & 12 deletions subsys/net/lib/ptp/port.c
Original file line number Diff line number Diff line change
Expand Up @@ -88,8 +88,9 @@ static int port_msg_send(struct ptp_port *port, struct ptp_msg *msg, enum ptp_so

static void port_timer_set_timeout(struct k_timer *timer, uint8_t factor, int8_t log_seconds)
{
uint64_t timeout = log_seconds < 0 ? (NSEC_PER_SEC * factor) >> (log_seconds * -1) :
(NSEC_PER_SEC * factor) << log_seconds;
uint64_t timeout = log_seconds < 0 ?
(uint64_t)((NSEC_PER_SEC * factor) >> (log_seconds * -1)) :
(uint64_t)((NSEC_PER_SEC * factor) << log_seconds);

k_timer_start(timer, K_NSEC(timeout), K_NO_WAIT);
}
Expand All @@ -102,14 +103,14 @@ static void port_timer_set_timeout_random(struct k_timer *timer,
uint64_t timeout, random_ns;

if (log_seconds < 0) {
timeout = (NSEC_PER_SEC * min_factor) >> -log_seconds;
random_ns = NSEC_PER_SEC >> -log_seconds;
timeout = (uint64_t)((NSEC_PER_SEC * min_factor) >> -log_seconds);
random_ns = (uint64_t)(NSEC_PER_SEC >> -log_seconds);
} else {
timeout = (NSEC_PER_SEC * min_factor) << log_seconds;
random_ns = (span * NSEC_PER_SEC) << log_seconds;
timeout = (uint64_t)((NSEC_PER_SEC * min_factor) << log_seconds);
random_ns = (uint64_t)((span * NSEC_PER_SEC) << log_seconds);
}

timeout = timeout + (random_ns * (sys_rand32_get() % (1 << 15) + 1) >> 15);
timeout = (uint64_t)(timeout + (random_ns * (sys_rand32_get() % (1 << 15) + 1) >> 15));
k_timer_start(timer, K_NSEC(timeout), K_NO_WAIT);
}

Expand Down Expand Up @@ -970,14 +971,14 @@ static void port_link_monitor(struct net_mgmt_event_callback *cb,

enum ptp_port_event event = PTP_EVT_NONE;
struct ptp_port *port = ptp_clock_port_from_iface(iface);
int iface_state = mgmt_event == NET_EVENT_IF_UP ? PORT_LINK_UP : PORT_LINK_DOWN;
uint8_t iface_state = mgmt_event == NET_EVENT_IF_UP ? PORT_LINK_UP : PORT_LINK_DOWN;

if (!port) {
return;
}

if (iface_state & port->link_status) {
port->link_status = port->link_status;
port->link_status = iface_state;
} else {
port->link_status = iface_state | PORT_LINK_CHANGED;
LOG_DBG("Port %d link %s",
Expand Down Expand Up @@ -1014,7 +1015,7 @@ void ptp_port_init(struct net_if *iface, void *user_data)
return;
}

port = ports + dds->n_ports;
port = &ports[dds->n_ports];

port->iface = iface;
port->best = NULL;
Expand Down Expand Up @@ -1360,8 +1361,9 @@ int ptp_port_add_foreign_tt(struct ptp_port *port, struct ptp_msg *msg)
port->port_ds.id.port_number,
port_id_str(&msg->header.src_port_id));

k_mem_slab_alloc(&foreign_tts_slab, (void **)&foreign, K_NO_WAIT);
if (!foreign) {
int ret = k_mem_slab_alloc(&foreign_tts_slab, (void **)&foreign, K_NO_WAIT);

if (ret) {
LOG_ERR("Couldn't allocate memory for new foreign timeTransmitter");
return 0;
}
Expand Down
2 changes: 1 addition & 1 deletion subsys/net/lib/ptp/tlv.c
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ static int tlv_mgmt_post_recv(struct ptp_tlv_mgmt *mgmt_tlv, uint16_t length)
enum ptp_mgmt_id id = (enum ptp_mgmt_id)mgmt_tlv->id;
struct ptp_tlv_container *container;
uint8_t *data;
uint16_t data_length;
int32_t data_length;

switch (id) {
case PTP_MGMT_NULL_PTP_MANAGEMENT:
Expand Down
6 changes: 4 additions & 2 deletions subsys/net/lib/ptp/transport.c
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ static int transport_udp_ipv4_open(struct net_if *iface, uint16_t port)
}

tos &= ~0xFC;
tos = CONFIG_PTP_DSCP_VALUE << 2;
tos |= CONFIG_PTP_DSCP_VALUE << 2;
length = sizeof(tos);

if (zsock_setsockopt(socket, IPPROTO_IP, IP_TOS, &tos, length)) {
Expand Down Expand Up @@ -175,7 +175,7 @@ static int transport_udp_ipv6_open(struct net_if *iface, uint16_t port)
}

tclass &= ~0xFC;
tclass = CONFIG_PTP_DSCP_VALUE << 2;
tclass |= CONFIG_PTP_DSCP_VALUE << 2;
length = sizeof(tclass);

if (zsock_setsockopt(socket, IPPROTO_IPV6, IPV6_TCLASS, &tclass, length)) {
Expand Down Expand Up @@ -318,6 +318,8 @@ int ptp_transport_recv(struct ptp_port *port, struct ptp_msg *msg, enum ptp_sock

int ptp_transport_protocol_addr(struct ptp_port *port, uint8_t *addr)
{
__ASSERT_NO_MSG(addr);

int length = 0;

if (IS_ENABLED(CONFIG_PTP_UDP_IPv4_PROTOCOL)) {
Expand Down

0 comments on commit e7437b1

Please sign in to comment.