Skip to content

Commit

Permalink
FIX: static analysis errors & warnings
Browse files Browse the repository at this point in the history
  • Loading branch information
r2axz committed Nov 30, 2020
1 parent b5bdc04 commit 5088884
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 11 deletions.
14 changes: 8 additions & 6 deletions cdc_shell.c
Original file line number Diff line number Diff line change
Expand Up @@ -425,19 +425,19 @@ static void cdc_shell_parse_command_line(char *cmd_line) {
int argc = 0;
char *argv[USB_SHELL_MAC_CMD_ARGS];
char *cmd_line_p = cmd_line;
while (isspace((int)(*cmd_line_p))) {
while (isspace(*(unsigned char *)cmd_line_p)) {
cmd_line_p++;
}
while (*cmd_line_p) {
if (argc < USB_SHELL_MAC_CMD_ARGS) {
argv[argc] = cmd_line_p;
while (*cmd_line_p && !isspace((int)(*cmd_line_p))) {
while (*cmd_line_p && !isspace(*(unsigned char *)cmd_line_p)) {
cmd_line_p++;
}
if (*cmd_line_p) {
*cmd_line_p++ = '\0';
}
while (isspace((int)(*cmd_line_p))) {
while (isspace(*(unsigned char *)cmd_line_p)) {
cmd_line_p++;
}
argc++;
Expand Down Expand Up @@ -475,6 +475,8 @@ void cdc_shell_init() {
cdc_shell_write(cdc_shell_prompt, strlen(cdc_shell_prompt));
}

#define ASCII_BACKSPACE_CHAR 0x08
#define ASCII_DELETE_CHAR 0x7f
#define ANSI_CTRLSEQ_ESCAPE_CHAR 0x1B
#define ANSI_CTRLSEQ_ESCAPE_CSI 0x5B
#define ANSI_CTRLSEQ_CUU 0x41
Expand Down Expand Up @@ -517,7 +519,7 @@ void cdc_shell_process_input(const void *buf, size_t count) {
while (count--) {
switch (cdc_shell_state) {
case cdc_shell_expects_csn:
if (isdigit((int)*buf_p)) {
if (isdigit(*(unsigned char*)buf_p)) {
/* Ignore values for simplicity */
break;
} else {
Expand Down Expand Up @@ -566,9 +568,9 @@ void cdc_shell_process_input(const void *buf, size_t count) {
cdc_shell_write(cdc_shell_prompt, strlen(cdc_shell_prompt));
} else if (*buf_p == ANSI_CTRLSEQ_ESCAPE_CHAR) {
cdc_shell_state = cdc_shell_expects_csi;
} else if (*buf_p == '\b' || *buf_p == '\177') {
} else if (*buf_p == ASCII_BACKSPACE_CHAR || *buf_p == ASCII_DELETE_CHAR) {
cdc_shell_handle_backspace();
} else if (isprint((int)(*buf_p))) {
} else if (isprint(*(unsigned char *)(buf_p))) {
cdc_shell_insert_symbol(*buf_p);
if ((cmd_line_cursor - cmd_line_buf) >= sizeof(cmd_line_buf)/sizeof(*cmd_line_buf)) {
cdc_shell_clear_cmd_buf();
Expand Down
11 changes: 6 additions & 5 deletions usb_cdc.c
Original file line number Diff line number Diff line change
Expand Up @@ -150,13 +150,14 @@ static int usb_cdc_send_port_state(int port, usb_cdc_serial_state_t state) {
uint8_t ep_num = usb_cdc_get_port_notification_ep(port);
uint8_t buf[sizeof(usb_cdc_notification_t) + sizeof(state)];
usb_cdc_notification_t *notification = (usb_cdc_notification_t*)buf;
uint16_t *state_p = (uint16_t*)(buf + sizeof(usb_cdc_notification_t));
uint8_t *state_p = buf + sizeof(usb_cdc_notification_t);
notification->bmRequestType = USB_CDC_NOTIFICATION_REQUEST_TYPE;
notification->bNotificationType = usb_cdc_notification_serial_state;
notification->wValue = 0;
notification->wIndex = usb_cdc_get_port_interface(port);
notification->wLength = sizeof(state);
*state_p = state;
*state_p++ = state & 0xFF;
*state_p = state >> 8;
if (usb_space_available(ep_num)) {
if (usb_send(ep_num, buf, sizeof(buf)) != sizeof(buf)) {
usb_panic();
Expand Down Expand Up @@ -734,10 +735,10 @@ void usb_cdc_data_endpoint_event_handler(uint8_t ep_num, usb_endpoint_event_t ep
usb_status_t usb_cdc_ctrl_process_request(usb_setup_t *setup, void **payload,
size_t *payload_size, usb_tx_complete_cb_t *tx_callback_ptr) {
if ((setup->type == usb_setup_type_class) &&
(setup->recepient = usb_setup_recepient_interface)) {
(setup->recepient == usb_setup_recepient_interface)) {
int if_num = setup->wIndex;
int port = usb_cdc_get_interface_port(if_num);
if (if_num != -1) {
if (port != -1) {
switch (setup->bRequest) {
case usb_cdc_request_set_control_line_state:
return usb_cdc_set_control_line_state(port, setup->wValue);
Expand Down Expand Up @@ -783,8 +784,8 @@ void usb_cdc_poll() {
usb_cdc_port_send_rx_usb(port);
if (cdc_state->line_state_change_ready) {
usb_cdc_set_line_coding(port, &cdc_state->line_coding, 0);
cdc_state->line_state_change_ready = 0;
cdc_state->line_state_change_pending = 0;
cdc_state->line_state_change_ready = 0;
}
if (cdc_state->usb_rx_pending_ep) {
size_t tx_space_available = circ_buf_space(tx_buf->head, tx_buf->tail, USB_CDC_BUF_SIZE);
Expand Down

0 comments on commit 5088884

Please sign in to comment.