From 822abf9e9b92d5134a8cd5192a45e6399465b207 Mon Sep 17 00:00:00 2001 From: Walter Doekes <walter+asterisk@wjd.nu> Date: Wed, 17 Dec 2014 09:24:50 +0000 Subject: [PATCH] Fix printf problems with high ascii characters after r413586 (1.8). In r413586 (1.8) various casts were added to silence gcc 4.10 warnings. Those fixes included things like: -out += sprintf(out, "%%%02X", (unsigned char) *ptr); +out += sprintf(out, "%%%02X", (unsigned) *ptr); That works for low ascii characters, but for the high range that yields e.g. FFFFFFC3 when C3 is expected. This changeset: - fixes those casts to use the 'hh' unsigned char modifier instead - consistently uses %02x instead of %2.2x (or other non-standard usage) - adds a few 'h' modifiers in various places - fixes a 'replcaes' typo - dev/urandon typo (in 13+ patch) Review: https://reviewboard.asterisk.org/r/4263/ ASTERISK-24619 #close Reported by: Stefan27 (on IRC) git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/11@429673 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- addons/ooh323c/src/printHandler.c | 2 +- apps/app_adsiprog.c | 2 +- apps/app_getcpeid.c | 10 ++--- apps/app_osplookup.c | 4 +- apps/app_sms.c | 14 +++---- channels/chan_h323.c | 2 +- channels/chan_iax2.c | 12 +++--- channels/chan_misdn.c | 2 +- channels/chan_sip.c | 6 +-- channels/chan_unistim.c | 42 +++++++++---------- channels/iax2-parser.c | 2 +- channels/misdn/ie.c | 14 +++---- channels/sig_pri.c | 8 ++-- channels/vcodecs.c | 6 +-- main/loader.c | 2 +- main/manager.c | 2 +- main/netsock.c | 4 +- main/udptl.c | 2 +- main/utils.c | 6 +-- pbx/dundi-parser.c | 8 ++-- .../src/pjlib-util-test/encryption.c | 2 +- res/pjproject/pjlib/src/pj/ssl_sock_dump.c | 2 +- res/pjproject/pjnath/src/pjnath-test/stun.c | 4 +- res/pjproject/pjnath/src/pjnath/stun_msg.c | 2 +- .../pjnath/src/pjnath/stun_msg_dump.c | 2 +- res/pjproject/pjnath/src/pjnath/turn_sock.c | 2 +- res/res_crypto.c | 2 +- res/res_pktccops.c | 6 +-- res/res_rtp_asterisk.c | 4 +- utils/astman.c | 2 +- utils/smsq.c | 8 ++-- 31 files changed, 92 insertions(+), 94 deletions(-) diff --git a/addons/ooh323c/src/printHandler.c b/addons/ooh323c/src/printHandler.c index 3986a865de..8d5113795a 100644 --- a/addons/ooh323c/src/printHandler.c +++ b/addons/ooh323c/src/printHandler.c @@ -268,7 +268,7 @@ static const char* octStrToString if (bufsiz > 1) buffer[1] = '\0'; for (i = 0; i < numocts; i++) { if (i < bufsiz - 1) { - sprintf (lbuf, "%02x", (unsigned)data[i]); + sprintf (lbuf, "%02hhx", (unsigned char)data[i]); strcat (&buffer[(i*2)+1], lbuf); } else break; diff --git a/apps/app_adsiprog.c b/apps/app_adsiprog.c index 5e7d5f3f64..3defaef653 100644 --- a/apps/app_adsiprog.c +++ b/apps/app_adsiprog.c @@ -1447,7 +1447,7 @@ static void dump_message(char *type, char *vname, unsigned char *buf, int buflen int x; printf("%s %s: [ ", type, vname); for (x = 0; x < buflen; x++) - printf("%02x ", buf[x]); + printf("%02hhx ", buf[x]); printf("]\n"); } #endif diff --git a/apps/app_getcpeid.c b/apps/app_getcpeid.c index 8192b76194..0fea0ed35d 100644 --- a/apps/app_getcpeid.c +++ b/apps/app_getcpeid.c @@ -87,9 +87,8 @@ static int cpeid_exec(struct ast_channel *chan, const char *idata) res = ast_adsi_get_cpeid(chan, cpeid, 0); if (res > 0) { gotcpeid = 1; - ast_verb(3, "Got CPEID of '%02x:%02x:%02x:%02x' on '%s'\n", - (unsigned)cpeid[0], (unsigned)cpeid[1], (unsigned)cpeid[2], - (unsigned)cpeid[3], ast_channel_name(chan)); + ast_verb(3, "Got CPEID of '%02hhx:%02hhx:%02hhx:%02hhx' on '%s'\n", + cpeid[0], cpeid[1], cpeid[2], cpeid[3], ast_channel_name(chan)); } if (res > -1) { strcpy(data[1], "Measuring CPE..."); @@ -103,9 +102,8 @@ static int cpeid_exec(struct ast_channel *chan, const char *idata) } if (res > -1) { if (gotcpeid) - snprintf(data[1], 80, "CPEID: %02x:%02x:%02x:%02x", - (unsigned)cpeid[0], (unsigned)cpeid[1], - (unsigned)cpeid[2], (unsigned)cpeid[3]); + snprintf(data[1], 80, "CPEID: %02hhx:%02hhx:%02hhx:%02hhx", + cpeid[0], cpeid[1], cpeid[2], cpeid[3]); else strcpy(data[1], "CPEID Unknown"); if (gotgeometry) diff --git a/apps/app_osplookup.c b/apps/app_osplookup.c index 88edbd51a0..363254be9d 100644 --- a/apps/app_osplookup.c +++ b/apps/app_osplookup.c @@ -1425,7 +1425,9 @@ static int osp_uuid2str( int res; if ((uuid != NULL) && (bufsize > OSP_SIZE_UUIDSTR)) { - snprintf(buffer, bufsize, "%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x", + snprintf(buffer, bufsize, "%02hhx%02hhx%02hhx%02hhx-%02hhx%02hhx-" + "%02hhx%02hhx-%02hhx%02hhx-" + "%02hhx%02hhx%02hhx%02hhx%02hhx%02hhx", uuid[0], uuid[1], uuid[2], uuid[3], uuid[4], uuid[5], uuid[6], uuid[7], uuid[8], uuid[9], uuid[10], uuid[11], uuid[12], uuid[13], uuid[14], uuid[15]); res = OSP_OK; diff --git a/apps/app_sms.c b/apps/app_sms.c index b7d2478188..af4c5d220d 100644 --- a/apps/app_sms.c +++ b/apps/app_sms.c @@ -782,7 +782,7 @@ static void sms_log(sms_t * h, char status) unsigned char n; if (h->mr >= 0) { - snprintf(mrs, sizeof(mrs), "%02X", (unsigned)h->mr); + snprintf(mrs, sizeof(mrs), "%02hhX", (unsigned char)h->mr); } snprintf(line, sizeof(line), "%s %c%c%c%s %s %s %s ", isodate(time(NULL), buf, sizeof(buf)), @@ -1015,7 +1015,7 @@ static void sms_writefile(sms_t * h) unsigned int p; fprintf(o, "udh#"); for (p = 0; p < h->udhl; p++) { - fprintf(o, "%02X", (unsigned)h->udh[p]); + fprintf(o, "%02hhX", (unsigned char)h->udh[p]); } fprintf(o, "\n"); } @@ -1048,7 +1048,7 @@ static void sms_writefile(sms_t * h) if (p == h->udl) { /* can write in ucs-1 hex */ fprintf(o, "ud#"); for (p = 0; p < h->udl; p++) { - fprintf(o, "%02X", (unsigned)h->ud[p]); + fprintf(o, "%02hhX", (unsigned char)h->ud[p]); } fprintf(o, "\n"); } else { /* write in UCS-2 */ @@ -1139,7 +1139,7 @@ static unsigned char sms_handleincoming (sms_t * h) return 0xFF; /* duh! */ } } else { - ast_log(LOG_WARNING, "Unknown message type %02X\n", (unsigned)h->imsg[2]); + ast_log(LOG_WARNING, "Unknown message type %02hhX\n", h->imsg[2]); return 0xFF; } } else { /* client */ @@ -1162,7 +1162,7 @@ static unsigned char sms_handleincoming (sms_t * h) return 0xFF; /* duh! */ } } else { - ast_log(LOG_WARNING, "Unknown message type %02X\n", (unsigned)h->imsg[2]); + ast_log(LOG_WARNING, "Unknown message type %02hhX\n", h->imsg[2]); return 0xFF; } } @@ -1244,7 +1244,7 @@ static char *sms_hexdump(unsigned char buf[], int size, char *s /* destination * int f; for (p = s, f = 0; f < size && f < MAX_DEBUG_LEN; f++, p += 3) { - sprintf(p, "%02X ", (unsigned)buf[f]); + sprintf(p, "%02hhX ", (unsigned char)buf[f]); } return(s); } @@ -1482,7 +1482,7 @@ static void sms_debug (int dir, sms_t *h) int n = (dir == DIR_RX) ? h->ibytep : msg[1] + 2; int q = 0; while (q < n && q < 30) { - sprintf(p, " %02X", (unsigned)msg[q++]); + sprintf(p, " %02hhX", msg[q++]); p += 3; } if (q < n) { diff --git a/channels/chan_h323.c b/channels/chan_h323.c index e292973931..b333f5ad01 100644 --- a/channels/chan_h323.c +++ b/channels/chan_h323.c @@ -654,7 +654,7 @@ static int oh323_call(struct ast_channel *c, const char *dest, int timeout) /* indicate that this is an outgoing call */ pvt->outgoing = 1; - ast_verb(3, "Requested transfer capability: 0x%.2x - %s\n", ast_channel_transfercapability(c), ast_transfercapability2str(ast_channel_transfercapability(c))); + ast_verb(3, "Requested transfer capability: 0x%02hx - %s\n", ast_channel_transfercapability(c), ast_transfercapability2str(ast_channel_transfercapability(c))); if (h323debug) ast_debug(1, "Placing outgoing call to %s, %d/%d\n", called_addr, pvt->options.dtmfcodec[0], pvt->options.dtmfcodec[1]); ast_mutex_unlock(&pvt->lock); diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c index fbf4752e71..de949571bc 100644 --- a/channels/chan_iax2.c +++ b/channels/chan_iax2.c @@ -357,7 +357,7 @@ static int (*iax2_regfunk)(const char *username, int onoff) = NULL; break; \ \ for (idx = 0; idx < 16; idx++) \ - sprintf(digest + (idx << 1), "%2.2x", (unsigned) key[idx]); \ + sprintf(digest + (idx << 1), "%02hhx", (unsigned char) key[idx]); \ \ ast_log(LOG_NOTICE, msg " IAX_COMMAND_RTKEY to rotate key to '%s'\n", digest); \ } while(0) @@ -6461,7 +6461,7 @@ static int decode_frame(ast_aes_decrypt_key *dcx, struct ast_iax2_full_hdr *fh, padding = 16 + (workspace[15] & 0x0f); if (iaxdebug) - ast_debug(1, "Decoding full frame with length %d (padding = %d) (15=%02x)\n", *datalen, padding, (unsigned)workspace[15]); + ast_debug(1, "Decoding full frame with length %d (padding = %d) (15=%02hhx)\n", *datalen, padding, workspace[15]); if (*datalen < padding + sizeof(struct ast_iax2_full_hdr)) return -1; @@ -6508,7 +6508,7 @@ static int encrypt_frame(ast_aes_encrypt_key *ecx, struct ast_iax2_full_hdr *fh, workspace[15] &= 0xf0; workspace[15] |= (padding & 0xf); if (iaxdebug) - ast_debug(1, "Encoding full frame %d/%d with length %d + %d padding (15=%02x)\n", fh->type, fh->csub, *datalen, padding, (unsigned)workspace[15]); + ast_debug(1, "Encoding full frame %d/%d with length %d + %d padding (15=%02hhx)\n", fh->type, fh->csub, *datalen, padding, workspace[15]); *datalen += padding; memcpy_encrypt(efh->encdata, workspace, *datalen - sizeof(struct ast_iax2_full_enc_hdr), ecx); if (*datalen >= 32 + sizeof(struct ast_iax2_full_enc_hdr)) @@ -8127,7 +8127,7 @@ static int authenticate_verify(struct chan_iax2_pvt *p, struct iax_ies *ies) MD5Final(digest, &md5); /* If they support md5, authenticate with it. */ for (x=0;x<16;x++) - sprintf(requeststr + (x << 1), "%2.2x", (unsigned)digest[x]); /* safe */ + sprintf(requeststr + (x << 1), "%02hhx", digest[x]); /* safe */ if (!strcasecmp(requeststr, md5secret)) { res = 0; break; @@ -8257,7 +8257,7 @@ static int register_verify(int callno, struct sockaddr_in *sin, struct iax_ies * MD5Update(&md5, (unsigned char *)tmppw, strlen(tmppw)); MD5Final(digest, &md5); for (x=0;x<16;x++) - sprintf(requeststr + (x << 1), "%2.2x", (unsigned)digest[x]); /* safe */ + sprintf(requeststr + (x << 1), "%02hhx", digest[x]); /* safe */ if (!strcasecmp(requeststr, md5secret)) break; } @@ -8340,7 +8340,7 @@ static int authenticate(const char *challenge, const char *secret, const char *k MD5Final(digest, &md5); /* If they support md5, authenticate with it. */ for (x=0;x<16;x++) - sprintf(digres + (x << 1), "%2.2x", (unsigned)digest[x]); /* safe */ + sprintf(digres + (x << 1), "%02hhx", digest[x]); /* safe */ if (pvt) { build_encryption_keys(digest, pvt); } diff --git a/channels/chan_misdn.c b/channels/chan_misdn.c index 548685aad5..def2036ed6 100644 --- a/channels/chan_misdn.c +++ b/channels/chan_misdn.c @@ -7500,7 +7500,7 @@ static int misdn_write(struct ast_channel *ast, struct ast_frame *frame) ast_debug(1, "write2mISDN %p %d bytes: ", p, frame->samples); for (i = 0; i < max; i++) { - ast_debug(1, "%2.2x ", ((char *) frame->data.ptr)[i]); + ast_debug(1, "%02hhx ", ((unsigned char *) frame->data.ptr)[i]); } } #endif diff --git a/channels/chan_sip.c b/channels/chan_sip.c index bf7ef406d1..332b6f64da 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -8215,7 +8215,7 @@ static struct ast_frame *sip_rtp_read(struct ast_channel *ast, struct sip_pvt *p } ast_str_append(&out, 0, " -> "); for (i = 0; i < f->datalen; i++) { - ast_str_append(&out, 0, "%02X ", (unsigned)arr[i]); + ast_str_append(&out, 0, "%02hhX ", arr[i]); } ast_verb(0, "%s\n", ast_str_buffer(out)); ast_free(out); @@ -23381,7 +23381,7 @@ static void handle_response_refer(struct sip_pvt *p, int resp, const char *rest, theoretically possible. */ if (resp < 299) { /* 1xx cases don't get here */ - ast_log(LOG_WARNING, "SIP transfer to %s had unxpected 2xx response (%d), confusion is possible. \n", p->refer->refer_to, resp); + ast_log(LOG_WARNING, "SIP transfer to %s had unexpected 2xx response (%d), confusion is possible. \n", p->refer->refer_to, resp); } else { ast_log(LOG_WARNING, "SIP transfer to %s with response (%d). \n", p->refer->refer_to, resp); } @@ -25787,7 +25787,7 @@ static int handle_request_invite(struct sip_pvt *p, struct sip_request *req, str } else { /* Go and take over the target call */ if (sipdebug) - ast_debug(4, "Sending this call to the invite/replcaes handler %s\n", p->callid); + ast_debug(4, "Sending this call to the invite/replaces handler %s\n", p->callid); res = handle_invite_replaces(p, req, addr, seqno, nounlock); refer_locked = 0; goto request_invite_cleanup; diff --git a/channels/chan_unistim.c b/channels/chan_unistim.c index 0366e690a6..02e6cf34ea 100644 --- a/channels/chan_unistim.c +++ b/channels/chan_unistim.c @@ -898,7 +898,7 @@ static void send_raw_client(int size, const unsigned char *data, struct sockaddr ast_inet_ntoa(addr_ourip->sin_addr), (int) size, ast_inet_ntoa(addr_to->sin_addr)); for (tmp = 0; tmp < size; tmp++) - ast_verb(0, "%.2x ", (unsigned char) data[tmp]); + ast_verb(0, "%02hhx ", data[tmp]); ast_verb(0, "\n******************************************\n"); } @@ -937,7 +937,7 @@ static void send_client(int size, const unsigned char *data, struct unistimsessi /*#ifdef DUMP_PACKET */ if (unistimdebug) { - ast_verb(6, "Sending datas with seq #0x%.4x Using slot #%d :\n", (unsigned)pte->seq_server, buf_pos); + ast_verb(6, "Sending datas with seq #0x%04x Using slot #%d :\n", (unsigned)pte->seq_server, buf_pos); } /*#endif */ send_raw_client(pte->wsabufsend[buf_pos].len, pte->wsabufsend[buf_pos].buf, &(pte->sin), @@ -1093,7 +1093,7 @@ static void send_icon(unsigned char pos, unsigned char status, struct unistimses { BUFFSEND; if (unistimdebug) { - ast_verb(0, "Sending icon pos %d with status 0x%.2x\n", pos, (unsigned)status); + ast_verb(0, "Sending icon pos %d with status 0x%02hhx\n", pos, status); } memcpy(buffsend + SIZE_HEADER, packet_send_icon, sizeof(packet_send_icon)); buffsend[9] = pos; @@ -1165,7 +1165,7 @@ send_favorite(unsigned char pos, unsigned char status, struct unistimsession *pt int i; if (unistimdebug) { - ast_verb(0, "Sending favorite pos %d with status 0x%.2x\n", pos, (unsigned)status); + ast_verb(0, "Sending favorite pos %d with status 0x%02hhx\n", pos, status); } memcpy(buffsend + SIZE_HEADER, packet_send_favorite, sizeof(packet_send_favorite)); buffsend[10] = pos; @@ -1430,7 +1430,7 @@ static int send_retransmit(struct unistimsession *pte) i < pte->last_buf_available; i++) { if (i < 0) { ast_log(LOG_WARNING, - "Asked to retransmit an ACKed slot ! last_buf_available=%d, seq_server = #0x%.4x last_seq_ack = #0x%.4x\n", + "Asked to retransmit an ACKed slot ! last_buf_available=%d, seq_server = #0x%04x last_seq_ack = #0x%04x\n", pte->last_buf_available, (unsigned)pte->seq_server, (unsigned)pte->last_seq_ack); continue; } @@ -1440,7 +1440,7 @@ static int send_retransmit(struct unistimsession *pte) unsigned short seq; seq = ntohs(sbuf[1]); - ast_verb(0, "Retransmit slot #%d (seq=#0x%.4x), last ack was #0x%.4x\n", i, + ast_verb(0, "Retransmit slot #%d (seq=#0x%04x), last ack was #0x%04x\n", i, (unsigned)seq, (unsigned)pte->last_seq_ack); } send_raw_client(pte->wsabufsend[i].len, pte->wsabufsend[i].buf, &pte->sin, @@ -1942,7 +1942,7 @@ static void rcv_mac_addr(struct unistimsession *pte, const unsigned char *buf) char addrmac[19]; int res = 0; for (tmp = 15; tmp < 15 + SIZE_HEADER; tmp++) { - sprintf(&addrmac[i], "%.2x", (unsigned) buf[tmp]); + sprintf(&addrmac[i], "%02hhx", buf[tmp]); i += 2; } if (unistimdebug) { @@ -4381,7 +4381,7 @@ static void process_request(int size, unsigned char *buf, struct unistimsession char keycode = buf[13]; if (unistimdebug) { - ast_verb(0, "Key pressed: keycode = 0x%.2x - current state: %s\n", (unsigned)keycode, + ast_verb(0, "Key pressed: keycode = 0x%02hhx - current state: %s\n", (unsigned char)keycode, ptestate_tostr(pte->state)); } switch (pte->state) { @@ -4546,15 +4546,14 @@ static void parsing(int size, unsigned char *buf, struct unistimsession *pte, return; } if (buf[5] != 2) { - ast_log(LOG_NOTICE, "%s Wrong direction : got 0x%.2x expected 0x02\n", tmpbuf, - (unsigned)buf[5]); + ast_log(LOG_NOTICE, "%s Wrong direction : got 0x%02hhx expected 0x02\n", tmpbuf, buf[5]); return; } seq = ntohs(sbuf[1]); if (buf[4] == 1) { ast_mutex_lock(&pte->lock); if (unistimdebug) { - ast_verb(6, "ACK received for packet #0x%.4x\n", (unsigned)seq); + ast_verb(6, "ACK received for packet #0x%04x\n", (unsigned)seq); } pte->nb_retransmit = 0; @@ -4570,7 +4569,7 @@ static void parsing(int size, unsigned char *buf, struct unistimsession *pte, pte->last_seq_ack = 0; } else { ast_log(LOG_NOTICE, - "%s Warning : ACK received for an already ACKed packet : #0x%.4x we are at #0x%.4x\n", + "%s Warning : ACK received for an already ACKed packet : #0x%04x we are at #0x%04x\n", tmpbuf, (unsigned)seq, (unsigned)pte->last_seq_ack); } ast_mutex_unlock(&pte->lock); @@ -4578,13 +4577,13 @@ static void parsing(int size, unsigned char *buf, struct unistimsession *pte, } if (pte->seq_server < seq) { ast_log(LOG_NOTICE, - "%s Error : ACK received for a non-existent packet : #0x%.4x\n", + "%s Error : ACK received for a non-existent packet : #0x%04x\n", tmpbuf, (unsigned)pte->seq_server); ast_mutex_unlock(&pte->lock); return; } if (unistimdebug) { - ast_verb(0, "%s ACK gap : Received ACK #0x%.4x, previous was #0x%.4x\n", + ast_verb(0, "%s ACK gap : Received ACK #0x%04x, previous was #0x%04x\n", tmpbuf, (unsigned)seq, (unsigned)pte->last_seq_ack); } pte->last_seq_ack = seq; @@ -4608,7 +4607,7 @@ static void parsing(int size, unsigned char *buf, struct unistimsession *pte, } if (pte->seq_phone > seq) { ast_log(LOG_NOTICE, - "%s Warning : received a retransmitted packet : #0x%.4x (we are at #0x%.4x)\n", + "%s Warning : received a retransmitted packet : #0x%04x (we are at #0x%04x)\n", tmpbuf, (unsigned)seq, (unsigned)pte->seq_phone); /* BUG ? pte->device->seq_phone = seq; */ /* Send ACK */ @@ -4618,29 +4617,28 @@ static void parsing(int size, unsigned char *buf, struct unistimsession *pte, return; } ast_log(LOG_NOTICE, - "%s Warning : we lost a packet : received #0x%.4x (we are at #0x%.4x)\n", + "%s Warning : we lost a packet : received #0x%04x (we are at #0x%04x)\n", tmpbuf, (unsigned)seq, (unsigned)pte->seq_phone); return; } if (buf[4] == 0) { - ast_log(LOG_NOTICE, "%s Retransmit request for packet #0x%.4x\n", tmpbuf, (unsigned)seq); + ast_log(LOG_NOTICE, "%s Retransmit request for packet #0x%04x\n", tmpbuf, (unsigned)seq); if (pte->last_seq_ack > seq) { ast_log(LOG_NOTICE, - "%s Error : received a request for an already ACKed packet : #0x%.4x\n", + "%s Error : received a request for an already ACKed packet : #0x%04x\n", tmpbuf, (unsigned)pte->last_seq_ack); return; } if (pte->seq_server < seq) { ast_log(LOG_NOTICE, - "%s Error : received a request for a non-existent packet : #0x%.4x\n", + "%s Error : received a request for a non-existent packet : #0x%04x\n", tmpbuf, (unsigned)pte->seq_server); return; } send_retransmit(pte); return; } - ast_log(LOG_NOTICE, "%s Unknown request : got 0x%.2x expected 0x00,0x01 or 0x02\n", - tmpbuf, (unsigned)buf[4]); + ast_log(LOG_NOTICE, "%s Unknown request : got 0x%02hhx expected 0x00,0x01 or 0x02\n", tmpbuf, buf[4]); return; } @@ -4984,7 +4982,7 @@ static int unistimsock_read(int *id, int fd, short events, void *ignore) dw_num_bytes_rcvd, ast_inet_ntoa(addr_from.sin_addr), tmp); for (dw_num_bytes_rcvdd = 0; dw_num_bytes_rcvdd < dw_num_bytes_rcvd; dw_num_bytes_rcvdd++) - ast_verb(0, "%.2x ", (unsigned char) buff[dw_num_bytes_rcvdd]); + ast_verb(0, "%02hhx ", buff[dw_num_bytes_rcvdd]); ast_verb(0, "\n******************************************\n"); #endif diff --git a/channels/iax2-parser.c b/channels/iax2-parser.c index 74444a409b..ece271007b 100644 --- a/channels/iax2-parser.c +++ b/channels/iax2-parser.c @@ -97,7 +97,7 @@ static void dump_string_hex(char *output, int maxlen, void *value, int len) int i = 0; while (len-- && (i + 1) * 4 < maxlen) { - sprintf(output + (4 * i), "\\x%2.2x", (unsigned)*((unsigned char *)value + i)); + sprintf(output + (4 * i), "\\x%02hhx", *((unsigned char *)value + i)); i++; } } diff --git a/channels/misdn/ie.c b/channels/misdn/ie.c index 74ae897de7..df5df9afed 100644 --- a/channels/misdn/ie.c +++ b/channels/misdn/ie.c @@ -293,7 +293,7 @@ static void enc_ie_call_id(unsigned char **ntmode, msg_t *msg, char *callid, int i = 0; while(i < callid_len) { - if (MISDN_IE_DEBG) printf(debug+(i*3), " %02x", callid[i]); + if (MISDN_IE_DEBG) printf(debug+(i*3), " %02hhx", (unsigned char)callid[i]); i++; } @@ -339,7 +339,7 @@ static void dec_ie_call_id(unsigned char *p, Q931_info_t *qi, char *callid, int i = 0; while(i < *callid_len) { - if (MISDN_IE_DEBG) printf(debug+(i*3), " %02x", callid[i]); + if (MISDN_IE_DEBG) printf(debug+(i*3), " %02hhx", (unsigned char)callid[i]); i++; } @@ -745,7 +745,7 @@ static void enc_ie_channel_id(unsigned char **ntmode, msg_t *msg, int exclusive, p[0] = IE_CHANNEL_ID; p[1] = l; p[2] = 0x80 + 0x20 + 0x03; -/* if (MISDN_IE_DEBG) printf("%02x\n", p[2]); */ +/* if (MISDN_IE_DEBG) printf("%02hhx\n", p[2]); */ return; /* end */ } l = 3; @@ -759,7 +759,7 @@ static void enc_ie_channel_id(unsigned char **ntmode, msg_t *msg, int exclusive, p[2] = 0x80 + 0x20 + (exclusive<<3) + 0x01; p[3] = 0x80 + 3; /* CCITT, Number, B-type */ p[4] = 0x80 + channel; -/* if (MISDN_IE_DEBG) printf("%02x %02x %02x\n", p[2], p[3], p[4]); */ +/* if (MISDN_IE_DEBG) printf("%02hhx %02hhx %02hhx\n", p[2], p[3], p[4]); */ } } @@ -849,7 +849,7 @@ static void dec_ie_channel_id(unsigned char *p, Q931_info_t *qi, int *exclusive, printf("%s: ERROR: PRI interface channel out of range (%d).\n", __FUNCTION__, *channel); return; } -/* if (MISDN_IE_DEBG) printf("%02x %02x %02x\n", p[1], p[2], p[3]); */ +/* if (MISDN_IE_DEBG) printf("%02hhx %02hhx %02hhx\n", p[1], p[2], p[3]); */ } if (MISDN_IE_DEBG) printf(" exclusive=%d channel=%d\n", *exclusive, *channel); @@ -1342,7 +1342,7 @@ static void enc_ie_useruser(unsigned char **ntmode, msg_t *msg, int protocol, ch char debug[768]; for (i = 0; i < user_len; ++i) { - sprintf(debug + (i * 3), " %02x", user[i]); + sprintf(debug + (i * 3), " %02hhx", (unsigned char)user[i]); } debug[i * 3] = 0; printf(" protocol=%d user-user%s\n", protocol, debug); @@ -1387,7 +1387,7 @@ static void dec_ie_useruser(unsigned char *p, Q931_info_t *qi, int *protocol, ch char debug[768]; for (i = 0; i < *user_len; ++i) { - sprintf(debug + (i * 3), " %02x", user[i]); + sprintf(debug + (i * 3), " %02hhx", (unsigned char)user[i]); } debug[i * 3] = 0; printf(" protocol=%d user-user%s\n", *protocol, debug); diff --git a/channels/sig_pri.c b/channels/sig_pri.c index 89f2e20df5..4fae21eda8 100644 --- a/channels/sig_pri.c +++ b/channels/sig_pri.c @@ -690,15 +690,15 @@ static void sig_pri_set_subaddress(struct ast_party_subaddress *ast_subaddress, ptr = cnum; len = pri_subaddress->length - 1; /* -1 account for zero based indexing */ for (x = 0; x < len; ++x) { - ptr += sprintf(ptr, "%02x", (unsigned)pri_subaddress->data[x]); + ptr += sprintf(ptr, "%02hhx", (unsigned char)pri_subaddress->data[x]); } if (pri_subaddress->odd_even_indicator) { /* ODD */ - sprintf(ptr, "%01x", (unsigned)((pri_subaddress->data[len]) >> 4)); + sprintf(ptr, "%01hhx", (unsigned char)((pri_subaddress->data[len]) >> 4)); } else { /* EVEN */ - sprintf(ptr, "%02x", (unsigned)pri_subaddress->data[len]); + sprintf(ptr, "%02hhx", (unsigned char)pri_subaddress->data[len]); } ast_subaddress->str = cnum; } @@ -7911,7 +7911,7 @@ int sig_pri_call(struct sig_pri_chan *p, struct ast_channel *ast, const char *rd if (p->pri->facilityenable) pri_facility_enable(p->pri->pri); - ast_verb(3, "Requested transfer capability: 0x%.2x - %s\n", (unsigned)ast_channel_transfercapability(ast), ast_transfercapability2str(ast_channel_transfercapability(ast))); + ast_verb(3, "Requested transfer capability: 0x%02hx - %s\n", ast_channel_transfercapability(ast), ast_transfercapability2str(ast_channel_transfercapability(ast))); dp_strip = 0; pridialplan = p->pri->dialplan - 1; if (pridialplan == -2 || pridialplan == -3) { /* compute dynamically */ diff --git a/channels/vcodecs.c b/channels/vcodecs.c index 72c7fa9c29..76aeb671f8 100644 --- a/channels/vcodecs.c +++ b/channels/vcodecs.c @@ -209,9 +209,9 @@ void dump_buf(struct fbuf_t *b) if (i != 0) ast_log(LOG_WARNING, "%s\n", buf); memset(buf, '\0', sizeof(buf)); - sprintf(buf, "%04x: ", i); + sprintf(buf, "%04x: ", (unsigned)i); } - sprintf(buf + 6 + x*3, "%02x ", b->data[i]); + sprintf(buf + 6 + x*3, "%02hhx ", b->data[i]); if (i > 31 && i < last2lines) i = last2lines - 1; } @@ -1056,7 +1056,7 @@ static int h264_decap(struct fbuf_t *b, uint8_t *data, int len) } /* first of all, check if the packet has F == 0 */ if (data[0] & 0x80) { - ast_log(LOG_WARNING, "--- forbidden packet; nal: %02x\n", + ast_log(LOG_WARNING, "--- forbidden packet; nal: %02hhx\n", data[0]); return 1; } diff --git a/main/loader.c b/main/loader.c index 67022ec775..24ab24bc8f 100644 --- a/main/loader.c +++ b/main/loader.c @@ -304,7 +304,7 @@ static int printdigest(const unsigned char *d) char buf[256]; /* large enough so we don't have to worry */ for (pos = 0, x = 0; x < 16; x++) - pos += sprintf(buf + pos, " %02x", (unsigned)*d++); + pos += sprintf(buf + pos, " %02hhx", *d++); ast_debug(1, "Unexpected signature:%s\n", buf); diff --git a/main/manager.c b/main/manager.c index 4df33816d5..7873e11a91 100644 --- a/main/manager.c +++ b/main/manager.c @@ -2653,7 +2653,7 @@ static int authenticate(struct mansession *s, const struct message *m) MD5Update(&md5, (unsigned char *) user->secret, strlen(user->secret)); MD5Final(digest, &md5); for (x = 0; x < 16; x++) - len += sprintf(md5key + len, "%2.2x", (unsigned)digest[x]); + len += sprintf(md5key + len, "%02hhx", digest[x]); if (!strcmp(md5key, key)) { error = 0; } else { diff --git a/main/netsock.c b/main/netsock.c index 8052db862e..3d92f96a72 100644 --- a/main/netsock.c +++ b/main/netsock.c @@ -215,10 +215,10 @@ char *ast_eid_to_str(char *s, int maxlen, struct ast_eid *eid) *s = '\0'; } else { for (x = 0; x < 5; x++) { - sprintf(s, "%02x:", (unsigned)eid->eid[x]); + sprintf(s, "%02hhx:", eid->eid[x]); s += 3; } - sprintf(s, "%02x", (unsigned)eid->eid[5]); + sprintf(s, "%02hhx", eid->eid[5]); } return os; } diff --git a/main/udptl.c b/main/udptl.c index 7a3e363910..ef74c8b5ce 100644 --- a/main/udptl.c +++ b/main/udptl.c @@ -478,7 +478,7 @@ static int udptl_rx_packet(struct ast_udptl *s, uint8_t *buf, unsigned int len) #if 0 fprintf(stderr, "FEC: "); for (j = 0; j < s->rx[x].fec_len[i]; j++) - fprintf(stderr, "%02X ", data[j]); + fprintf(stderr, "%02hhX ", data[j]); fprintf(stderr, "\n"); #endif } diff --git a/main/utils.c b/main/utils.c index cdb23fc78a..95623f2749 100644 --- a/main/utils.c +++ b/main/utils.c @@ -261,7 +261,7 @@ void ast_md5_hash(char *output, const char *input) MD5Final(digest, &md5); ptr = output; for (x = 0; x < 16; x++) - ptr += sprintf(ptr, "%2.2x", (unsigned)digest[x]); + ptr += sprintf(ptr, "%02hhx", digest[x]); } /*! \brief Produce 40 char SHA1 hash of value. */ @@ -279,7 +279,7 @@ void ast_sha1_hash(char *output, const char *input) SHA1Result(&sha, Message_Digest); ptr = output; for (x = 0; x < 20; x++) - ptr += sprintf(ptr, "%2.2x", (unsigned)Message_Digest[x]); + ptr += sprintf(ptr, "%02hhx", Message_Digest[x]); } /*! \brief Produce a 20 byte SHA1 hash of value. */ @@ -430,7 +430,7 @@ char *ast_uri_encode(const char *string, char *outbuf, int buflen, struct ast_fl if (out - outbuf >= buflen - 3) { break; } - out += sprintf(out, "%%%02X", (unsigned) *ptr); + out += sprintf(out, "%%%02hhX", (unsigned char) *ptr); } else { *out = *ptr; /* Continue copying the string */ out++; diff --git a/pbx/dundi-parser.c b/pbx/dundi-parser.c index ca219fd1e2..c178fd6544 100644 --- a/pbx/dundi-parser.c +++ b/pbx/dundi-parser.c @@ -61,7 +61,7 @@ char *dundi_eid_to_str_short(char *s, int maxlen, dundi_eid *eid) *s = '\0'; } else { for (x=0;x<6;x++) { - sprintf(s, "%02X", (unsigned)eid->eid[x]); + sprintf(s, "%02hhX", (unsigned char)eid->eid[x]); s += 2; } } @@ -320,7 +320,7 @@ static void dump_encrypted(char *output, int maxlen, void *value, int len) if ((len > 16) && !(len % 16)) { /* Build up IV */ for (x=0;x<16;x++) { - snprintf(iv + (x << 1), 3, "%02x", (unsigned)((unsigned char *)value)[x]); + snprintf(iv + (x << 1), 3, "%02hhx", ((unsigned char *)value)[x]); } snprintf(output, maxlen, "[IV %s] %d encrypted blocks\n", iv, len / 16); } else @@ -334,7 +334,7 @@ static void dump_raw(char *output, int maxlen, void *value, int len) output[maxlen - 1] = '\0'; strcpy(output, "[ "); for (x=0;x<len;x++) { - snprintf(output + strlen(output), maxlen - strlen(output) - 1, "%02x ", (unsigned)u[x]); + snprintf(output + strlen(output), maxlen - strlen(output) - 1, "%02hhx ", u[x]); } strncat(output + strlen(output), "]", maxlen - strlen(output) - 1); } @@ -464,7 +464,7 @@ void dundi_showframe(struct dundi_hdr *fhi, int rx, struct sockaddr_in *sin, int } else { class = commands[(int)(fhi->cmdresp & 0x3f)]; } - snprintf(subclass2, (int)sizeof(subclass2), "%02x", (unsigned)fhi->cmdflags); + snprintf(subclass2, (int)sizeof(subclass2), "%02hhx", (unsigned char)fhi->cmdflags); subclass = subclass2; snprintf(tmp, (int)sizeof(tmp), "%s-Frame -- OSeqno: %3.3d ISeqno: %3.3d Type: %s (%s)\n", diff --git a/res/pjproject/pjlib-util/src/pjlib-util-test/encryption.c b/res/pjproject/pjlib-util/src/pjlib-util-test/encryption.c index d9af3d9f82..731c637c14 100644 --- a/res/pjproject/pjlib-util/src/pjlib-util-test/encryption.c +++ b/res/pjproject/pjlib-util/src/pjlib-util-test/encryption.c @@ -53,7 +53,7 @@ static void digest_to_hex(const pj_uint8_t digest[PJ_SHA1_DIGEST_SIZE], for (i = 0; i < PJ_SHA1_DIGEST_SIZE/4; i++) { for (j = 0; j < 4; j++) { - sprintf(c,"%02X", digest[i*4+j]); + sprintf(c,"%02hhX", digest[i*4+j]); c += 2; } sprintf(c, " "); diff --git a/res/pjproject/pjlib/src/pj/ssl_sock_dump.c b/res/pjproject/pjlib/src/pj/ssl_sock_dump.c index 307431f5bb..a023009293 100644 --- a/res/pjproject/pjlib/src/pj/ssl_sock_dump.c +++ b/res/pjproject/pjlib/src/pj/ssl_sock_dump.c @@ -63,7 +63,7 @@ PJ_DEF(pj_ssize_t) pj_ssl_cert_info_dump(const pj_ssl_cert_info *ci, for (i = 0; i < sizeof(ci->serial_no) && !ci->serial_no[i]; ++i); for (; i < sizeof(ci->serial_no); ++i) { - len = pj_ansi_snprintf(p, end-p, "%02X ", ci->serial_no[i]); + len = pj_ansi_snprintf(p, end-p, "%02hhX ", ci->serial_no[i]); CHECK_BUF_LEN(); } *(p-1) = '\n'; diff --git a/res/pjproject/pjnath/src/pjnath-test/stun.c b/res/pjproject/pjnath/src/pjnath-test/stun.c index f0044c6633..43208d2911 100644 --- a/res/pjproject/pjnath/src/pjnath-test/stun.c +++ b/res/pjproject/pjnath/src/pjnath-test/stun.c @@ -567,7 +567,7 @@ static char* print_binary(const pj_uint8_t *data, unsigned data_len) p += 12; for (j=0; j<20 && i<data_len && p<(buf+length-10); ++j, ++i) { - pj_ansi_sprintf(p, "%02x ", (*data) & 0xFF); + pj_ansi_sprintf(p, "%02hhx ", (*data) & 0xFF); p += 3; data++; } @@ -924,7 +924,7 @@ static int handle_unknown_non_mandatory(void) unsigned i; puts(""); printf("{ "); - for (i=0; i<len; ++i) printf("0x%02x, ", packet[i]); + for (i=0; i<len; ++i) printf("0x%02hhx, ", packet[i]); puts(" }"); } #endif diff --git a/res/pjproject/pjnath/src/pjnath/stun_msg.c b/res/pjproject/pjnath/src/pjnath/stun_msg.c index e6f9915992..1b16a93b41 100644 --- a/res/pjproject/pjnath/src/pjnath/stun_msg.c +++ b/res/pjproject/pjnath/src/pjnath/stun_msg.c @@ -2559,7 +2559,7 @@ static char *print_binary(const pj_uint8_t *data, unsigned data_len) buffer += 7; for (i=0; i<data_len; ++i) { - pj_ansi_sprintf(buffer, "%02x", (*data) & 0xFF); + pj_ansi_sprintf(buffer, "%02hhx", (*data) & 0xFF); buffer += 2; data++; } diff --git a/res/pjproject/pjnath/src/pjnath/stun_msg_dump.c b/res/pjproject/pjnath/src/pjnath/stun_msg_dump.c index ea62f73422..ca3e96145c 100644 --- a/res/pjproject/pjnath/src/pjnath/stun_msg_dump.c +++ b/res/pjproject/pjnath/src/pjnath/stun_msg_dump.c @@ -42,7 +42,7 @@ static int print_binary(char *buffer, unsigned length, buffer += 7; for (i=0; i<data_len; ++i) { - pj_ansi_sprintf(buffer, "%02x", (*data) & 0xFF); + pj_ansi_sprintf(buffer, "%02hhx", (*data) & 0xFF); buffer += 2; data++; } diff --git a/res/pjproject/pjnath/src/pjnath/turn_sock.c b/res/pjproject/pjnath/src/pjnath/turn_sock.c index e841af2c8e..df43194a4b 100644 --- a/res/pjproject/pjnath/src/pjnath/turn_sock.c +++ b/res/pjproject/pjnath/src/pjnath/turn_sock.c @@ -561,7 +561,7 @@ static pj_bool_t on_data_read(pj_activesock_t *asock, //const pj_uint8_t *pkt = (const pj_uint8_t*)data; //PJ_LOG(5,(turn_sock->pool->obj_name, - // "Packet start: %02X %02X %02X %02X", + // "Packet start: %02hhX %02hhX %02hhX %02hhX", // pkt[0], pkt[1], pkt[2], pkt[3])); //PJ_LOG(5,(turn_sock->pool->obj_name, diff --git a/res/res_crypto.c b/res/res_crypto.c index 588e0de3ba..2f0c67615d 100644 --- a/res/res_crypto.c +++ b/res/res_crypto.c @@ -532,7 +532,7 @@ static void md52sum(char *sum, unsigned char *md5) { int x; for (x = 0; x < 16; x++) { - sum += sprintf(sum, "%02x", (unsigned)*(md5++)); + sum += sprintf(sum, "%02hhx", *(md5++)); } } diff --git a/res/res_pktccops.c b/res/res_pktccops.c index 747281952b..365e32c69a 100644 --- a/res/res_pktccops.c +++ b/res/res_pktccops.c @@ -799,9 +799,9 @@ static void *do_pktccops(void *data) if ((idx = ast_poll_fd_index(pfds, nfds, cmts->sfd)) > -1 && (pfds[idx].revents & POLLIN)) { len = cops_getmsg(cmts->sfd, recmsg); if (len > 0) { - ast_debug(3, "COPS: got from %s:\n Header: versflag=0x%.2x opcode=%i clienttype=0x%.4x msglength=%u\n", - cmts->name, (unsigned)recmsg->verflag, - recmsg->opcode, (unsigned)recmsg->clienttype, recmsg->length); + ast_debug(3, "COPS: got from %s:\n Header: versflag=0x%02hhx opcode=%i clienttype=0x%04hx msglength=%u\n", + cmts->name, recmsg->verflag, + recmsg->opcode, recmsg->clienttype, recmsg->length); if (recmsg->object != NULL) { pobject = recmsg->object; while (pobject != NULL) { diff --git a/res/res_rtp_asterisk.c b/res/res_rtp_asterisk.c index c05f699888..18c6af782d 100644 --- a/res/res_rtp_asterisk.c +++ b/res/res_rtp_asterisk.c @@ -1329,7 +1329,7 @@ static int ast_rtp_dtls_set_configuration(struct ast_rtp_instance *instance, con } for (i = 0; i < size; i++) { - sprintf(local_fingerprint, "%.2X:", (unsigned)fingerprint[i]); + sprintf(local_fingerprint, "%02hhX:", fingerprint[i]); local_fingerprint += 3; } @@ -1491,7 +1491,7 @@ static void ast_rtp_dtls_set_fingerprint(struct ast_rtp_instance *instance, enum rtp->remote_hash = hash; while ((value = strsep(&tmp, ":")) && (pos != (EVP_MAX_MD_SIZE - 1))) { - sscanf(value, "%02x", (unsigned int*)&rtp->remote_fingerprint[pos++]); + sscanf(value, "%02hhx", &rtp->remote_fingerprint[pos++]); } } diff --git a/utils/astman.c b/utils/astman.c index 3e9ca8ffb8..315b3b065b 100644 --- a/utils/astman.c +++ b/utils/astman.c @@ -723,7 +723,7 @@ static int manager_login(char *hostname) MD5Update(&md5, (unsigned char *)pass, strlen(pass)); MD5Final(digest, &md5); for (x=0; x<16; x++) - len += sprintf(md5key + len, "%2.2x", digest[x]); + len += sprintf(md5key + len, "%02hhx", digest[x]); manager_action("Login", "AuthType: MD5\r\n" "Username: %s\r\n" diff --git a/utils/smsq.c b/utils/smsq.c index fab32f0862..21ab80d04a 100644 --- a/utils/smsq.c +++ b/utils/smsq.c @@ -390,14 +390,14 @@ static void rxqcheck (char *dir, char *queue, char *process) { for (n = 0, x = 0; x < udl; x++) { - sprintf (tmp + n, "%02X", ud[x]); + sprintf (tmp + n, "%02hX", ud[x]); n += 2; } setenv ("ud8", tmp, 1); } for (n = 0, x = 0; x < udl; x++) { - sprintf (tmp + n, "%04X", ud[x]); + sprintf (tmp + n, "%04hX", ud[x]); n += 4; } setenv ("ud16", tmp, 1); @@ -730,13 +730,13 @@ main (int argc, const char *argv[]) { /* use one byte hex */ fprintf (f, "ud#"); for (p = 0; p < udl; p++) - fprintf (f, "%02X", ud[p]); + fprintf (f, "%02hX", ud[p]); } } else { /* use two byte hex */ fprintf (f, "ud##"); for (p = 0; p < udl; p++) - fprintf (f, "%04X", ud[p]); + fprintf (f, "%04hX", ud[p]); } fprintf (f, "\n"); } -- GitLab