apix-can-examples: fix static analyzer warnings
* Initialize 'iface' and validate it before use to avoid undefined behavior. * Move 'deffilter' to global static scope in can-recv-example to prevent stack address escape. * Fix incorrect retry count in failure message in can-send-example. No functional changes. Signed-off-by: Javier Viguera <javier.viguera@digi.com>
This commit is contained in:
parent
2e2aac99f1
commit
85480c9f26
|
|
@ -34,6 +34,12 @@ static bool running = true;
|
|||
static bool prn_msg_info = false;
|
||||
static bool prn_msg_count = false;
|
||||
|
||||
/* Default CAN filter if not specified in command line */
|
||||
static struct can_filter deffilter = {
|
||||
.can_id = 0,
|
||||
.can_mask = 0
|
||||
};
|
||||
|
||||
/*
|
||||
* usage_and_exit() - Show usage information and exit with 'exitval' return
|
||||
* value
|
||||
|
|
@ -207,16 +213,12 @@ static int parse_filters(char *str, struct can_filter **cfilter, int *nfilters)
|
|||
int main(int argc, char **argv)
|
||||
{
|
||||
char *name = basename(argv[0]);
|
||||
char *iface;
|
||||
char *iface = NULL;
|
||||
can_if_cfg_t ifcfg;
|
||||
int nfilters = 0;
|
||||
int opt;
|
||||
int ret;
|
||||
float sp = 0.0;
|
||||
struct can_filter deffilter;
|
||||
|
||||
deffilter.can_id = 0;
|
||||
deffilter.can_mask = 0;
|
||||
|
||||
if (argc <= 3) {
|
||||
usage_and_exit(name, EXIT_FAILURE);
|
||||
|
|
@ -277,6 +279,10 @@ int main(int argc, char **argv)
|
|||
}
|
||||
}
|
||||
|
||||
if (!iface) {
|
||||
fprintf(stderr, "Error: CAN interface not specified\n");
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
printf("Requesting CAN interface %s... ", iface);
|
||||
|
||||
can_if = ldx_can_request_by_name(iface);
|
||||
|
|
|
|||
|
|
@ -177,7 +177,7 @@ void update_msg(struct canfd_frame *frame, uint32_t id, uint8_t dlc, uint8_t fla
|
|||
int main(int argc, char **argv)
|
||||
{
|
||||
char *name = basename(argv[0]);
|
||||
char *iface;
|
||||
char *iface = NULL;
|
||||
can_if_cfg_t ifcfg;
|
||||
int opt;
|
||||
int ret;
|
||||
|
|
@ -262,10 +262,13 @@ int main(int argc, char **argv)
|
|||
}
|
||||
}
|
||||
|
||||
if (!iface) {
|
||||
fprintf(stderr, "Error: CAN interface not specified\n");
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
printf("Requesting CAN interface %s... ", iface);
|
||||
|
||||
can_if = ldx_can_request_by_name(iface);
|
||||
|
||||
if (!can_if) {
|
||||
printf("ERROR\n");
|
||||
return EXIT_FAILURE;
|
||||
|
|
@ -304,7 +307,7 @@ int main(int argc, char **argv)
|
|||
}
|
||||
|
||||
if (!retries) {
|
||||
printf("Failed to send CAN frame after %d tries\n", ret);
|
||||
printf("Failed to send CAN frame after %d tries\n", TX_RETRIES);
|
||||
goto error;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue