firmware: Enable -Wformat and resolve all related compiler warnings

There have been tons of format-string related bugs in our code which
we never discovered due to disabling -Wformat.  Let's fix that.

Change-Id: I5ec466361bcc526fac1f4897673264ee5af3458b
This commit is contained in:
Harald Welte
2018-08-26 09:53:13 +02:00
parent 888f196595
commit c394109964
13 changed files with 24 additions and 23 deletions

View File

@@ -112,7 +112,7 @@ enum tpdu_state {
#define _P3 4
struct card_handle {
uint32_t num;
unsigned int num;
enum iso7816_3_card_state state;

View File

@@ -150,7 +150,7 @@ int usb_refill_from_host(uint8_t ep)
rc = USBD_Read(ep, msg->head, msgb_tailroom(msg),
(TransferCallback) &usb_read_cb, msg);
if (rc != USBD_STATUS_SUCCESS) {
TRACE_ERROR("%s error %s\n", __func__, rc);
TRACE_ERROR("%s error %d\n", __func__, rc);
usb_buf_free(msg);
bep->in_progress = 0;
}

View File

@@ -140,8 +140,8 @@ uint32_t ISO7816_SendChar( uint8_t CharToSend, Usart_info *usart )
while((us_base->US_CSR & (US_CSR_TXRDY)) == 0) {
i++;
if (!(i%1000000)) {
printf("s: %x ", us_base->US_CSR);
printf("s: %x\r\n", us_base->US_RHR & 0xFF);
printf("s: %lx ", us_base->US_CSR);
printf("s: %lx\r\n", us_base->US_RHR & 0xFF);
us_base->US_CR = US_CR_RSTTX;
us_base->US_CR = US_CR_RSTRX;
}

View File

@@ -50,7 +50,7 @@ static const Pin pin_usim2_vcc = PIN_USIM2_VCC;
#endif
struct cardem_inst {
uint32_t num;
unsigned int num;
struct card_handle *ch;
struct llist_head usb_out_queue;
struct ringbuf rb;
@@ -117,7 +117,7 @@ static void wait_tx_idle(Usart *usart)
/* wait until last char has been fully transmitted */
while ((usart->US_CSR & (US_CSR_TXEMPTY)) == 0) {
if (!(i%1000000)) {
TRACE_ERROR("s: %x \r\n", usart->US_CSR);
TRACE_ERROR("s: %lx \r\n", usart->US_CSR);
}
i++;
}
@@ -174,7 +174,7 @@ int card_emu_uart_tx(uint8_t uart_chan, uint8_t byte)
int i = 1;
while ((usart->US_CSR & (US_CSR_TXRDY)) == 0) {
if (!(i%1000000)) {
TRACE_ERROR("%u: s: %x %02X\r\n",
TRACE_ERROR("%u: s: %lx %02lX\r\n",
uart_chan, usart->US_CSR,
usart->US_RHR & 0xFF);
usart->US_CR = US_CR_RSTTX;
@@ -213,7 +213,7 @@ static void usart_irq_rx(uint8_t inst_num)
if (csr & (US_CSR_OVRE|US_CSR_FRAME|US_CSR_PARE|
US_CSR_TIMEOUT|US_CSR_NACK|(1<<10))) {
usart->US_CR = US_CR_RSTSTA | US_CR_RSTIT | US_CR_RSTNACK;
TRACE_ERROR("%u e 0x%x st: 0x%x\n", ci->num, byte, csr);
TRACE_ERROR("%u e 0x%x st: 0x%lx\n", ci->num, byte, csr);
}
}

View File

@@ -62,7 +62,7 @@ int _talloc_free(void *ptr, const char *location)
for (i = 0; i < ARRAY_SIZE(msgb_inuse); i++) {
if (ptr == msgb_data[i]) {
if (!msgb_inuse[i]) {
TRACE_ERROR("%s: double_free by \r\n", __func__, location);
TRACE_ERROR("%s: double_free by %s\r\n", __func__, location);
} else {
msgb_inuse[i] = 0;
}

View File

@@ -58,7 +58,7 @@ void ISR_PhoneRST(const Pin * pPin)
{
int ret;
// FIXME: no printfs in ISRs?
printf("+++ Int!! %x\n\r", pinPhoneRST.pio->PIO_ISR);
printf("+++ Int!! %lx\n\r", pinPhoneRST.pio->PIO_ISR);
if (((pinPhoneRST.pio->PIO_ISR & pinPhoneRST.mask) != 0)) {
if (PIO_Get(&pinPhoneRST) == 0) {
printf(" 0 ");

View File

@@ -215,7 +215,7 @@ static void update_wt(uint8_t wi, uint8_t d)
wt_d = d;
}
wt = wt_wi*960UL*wt_d;
TRACE_INFO("WT updated to %u\n\r", wt);
TRACE_INFO("WT updated to %lu\n\r", wt);
}
/*! Allocate USB buffer and push + initialize simtrace_msg_hdr
@@ -325,7 +325,7 @@ static void print_flags(const struct value_string* flag_meanings, uint32_t nb_fl
uint32_t i;
for (i = 0; i < nb_flags; i++) {
if (flags & flag_meanings[i].value) {
printf(flag_meanings[i].str);
printf("%s", flag_meanings[i].str);
flags &= ~flag_meanings[i].value;
if (flags) {
printf(", ");

View File

@@ -62,8 +62,10 @@
//------------------------------------------------------------------------------
//
FILE* const stdin = NULL;
FILE* const stdout = NULL;
FILE* const stderr = NULL;
/* If we use NULL here, we get compiler warnings of calling stdio functions with
* NULL values. Our fputs() implementation ignores the value of those pointers anyway */
FILE* const stdout = (FILE *) 0x1;
FILE* const stderr = (FILE *) 0x2;
//------------------------------------------------------------------------------