Fix printf problems with high ascii characters after r413586 (1.8).
authorWalter Doekes <walter+asterisk@wjd.nu>
Wed, 17 Dec 2014 10:23:32 +0000 (10:23 +0000)
committerWalter Doekes <walter+asterisk@wjd.nu>
Wed, 17 Dec 2014 10:23:32 +0000 (10:23 +0000)
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)
........

Merged revisions 429673 from http://svn.asterisk.org/svn/asterisk/branches/11
........

Merged revisions 429674 from http://svn.asterisk.org/svn/asterisk/branches/12
........

Merged revisions 429675 from http://svn.asterisk.org/svn/asterisk/branches/13

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@429683 65c4cc65-6c06-0410-ace0-fbb531ad65f3

25 files changed:
addons/ooh323c/src/printHandler.c
apps/app_adsiprog.c
apps/app_getcpeid.c
apps/app_osplookup.c
apps/app_sms.c
channels/chan_iax2.c
channels/chan_misdn.c
channels/chan_sip.c
channels/chan_unistim.c
channels/iax2/parser.c
channels/misdn/ie.c
channels/sig_pri.c
channels/vcodecs.c
main/http.c
main/loader.c
main/manager.c
main/udptl.c
main/utils.c
main/uuid.c
pbx/dundi-parser.c
res/res_crypto.c
res/res_pktccops.c
res/res_rtp_asterisk.c
utils/astman.c
utils/smsq.c

index a2a443c..953f17f 100644 (file)
@@ -269,7 +269,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;
index 8b60b63..efe1aa3 100644 (file)
@@ -1456,7 +1456,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
index d0e6253..319ed3c 100644 (file)
@@ -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) 
index a576c96..ef816c3 100644 (file)
@@ -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;
index e94a63d..385f479 100644 (file)
@@ -783,7 +783,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)),
@@ -1016,7 +1016,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");
        }
@@ -1049,7 +1049,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 */
@@ -1140,7 +1140,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 */
@@ -1163,7 +1163,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;
                }
        }
@@ -1245,7 +1245,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);
 }
@@ -1483,7 +1483,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) {
index 39861db..c01bf5c 100644 (file)
@@ -387,7 +387,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)
@@ -6442,7 +6442,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;
 
@@ -6489,7 +6489,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))
@@ -8207,7 +8207,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;
@@ -8339,7 +8339,7 @@ static int register_verify(int callno, struct ast_sockaddr *addr, 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;
                }
@@ -8423,7 +8423,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);
                        }
index 8011b8f..3a4f521 100644 (file)
@@ -7541,7 +7541,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
index 104ef5c..4789c55 100644 (file)
@@ -8378,7 +8378,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);
@@ -23604,7 +23604,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);
                }
index 3dca9e8..44cfdb0 100644 (file)
@@ -935,7 +935,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");
 
        }
@@ -974,7 +974,7 @@ static void send_client(int size, const unsigned char *data, struct unistimsessi
 
 /*#ifdef DUMP_PACKET */
        if (unistimdebug) {
-               ast_verb(0, "Sending datas with seq #0x%.4x Using slot #%d :\n", (unsigned)pte->seq_server, buf_pos);
+               ast_verb(0, "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),
@@ -1130,7 +1130,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;
@@ -1150,7 +1150,7 @@ static void send_expansion_icon(unsigned char pos, unsigned char status, struct
 {
        BUFFSEND;
        if (unistimdebug) {
-               ast_verb(0, "Sending expansion icon pos %d with status 0x%.2x\n", pos, (unsigned)status);
+               ast_verb(0, "Sending expansion icon pos %d with status 0x%02hhx\n", pos, status);
        }
        memcpy(buffsend + SIZE_HEADER, packet_send_expansion_icon, sizeof(packet_send_expansion_icon));
        buffsend[10] = pos;
@@ -1262,7 +1262,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;
@@ -1539,7 +1539,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;
                }
@@ -1549,7 +1549,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,
@@ -2062,7 +2062,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) {
@@ -4484,7 +4484,7 @@ static void process_request(int size, unsigned char *buf, struct unistimsession
                char keycode = buf[13];
                
                if (unistimdebug) {
-                       ast_verb(0, "Expansion key pressed: keycode = 0x%.2x - current state: %s\n", (unsigned)keycode,
+                       ast_verb(0, "Expansion key pressed: keycode = 0x%02hhx - current state: %s\n", (unsigned char)keycode,
                                                ptestate_tostr(pte->state));
                }
        }
@@ -4492,7 +4492,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));
                }
                if (keycode == KEY_MUTE) {
@@ -4660,15 +4660,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(0, "ACK received for packet #0x%.4x\n", (unsigned)seq);
+                       ast_verb(0, "ACK received for packet #0x%04x\n", (unsigned)seq);
                }
                pte->nb_retransmit = 0;
 
@@ -4684,7 +4683,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);
@@ -4692,13 +4691,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;
@@ -4722,7 +4721,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 */
@@ -4732,29 +4731,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;
 }
 
@@ -5096,7 +5094,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
 
index f1fc8f8..2a3eabf 100644 (file)
@@ -111,7 +111,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++;
        }
 }
index 74ae897..df5df9a 100644 (file)
@@ -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);
index a26b566..37d3e49 100644 (file)
@@ -754,15 +754,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;
        }
@@ -8083,7 +8083,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 */
index 72c7fa9..76aeb67 100644 (file)
@@ -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;
        }
index 4061516..a9e50cb 100644 (file)
@@ -1030,8 +1030,8 @@ static int http_body_check_chunk_sync(struct ast_tcptls_session_instance *ser)
                return -1;
        }
        if (chunk_sync[0] != 0x0D || chunk_sync[1] != 0x0A) {
-               ast_log(LOG_WARNING, "HTTP chunk sync bytes wrong (0x%02X, 0x%02X)\n",
-                       (unsigned) chunk_sync[0], (unsigned) chunk_sync[1]);
+               ast_log(LOG_WARNING, "HTTP chunk sync bytes wrong (0x%02hhX, 0x%02hhX)\n",
+                       (unsigned char) chunk_sync[0], (unsigned char) chunk_sync[1]);
                return -1;
        }
 
index def8bba..f80e726 100644 (file)
@@ -334,7 +334,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);
 
index ce0f61d..a4ad056 100644 (file)
@@ -3212,7 +3212,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 {
index 89ea0a8..d8b02b0 100644 (file)
@@ -520,7 +520,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
                }
index e3bb36e..7032631 100644 (file)
@@ -251,7 +251,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. */
@@ -269,7 +269,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. */
@@ -420,7 +420,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++;
@@ -2701,10 +2701,10 @@ char *ast_eid_to_str(char *s, int maxlen, struct ast_eid *eid)
                }
        } 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;
 }
index ba864ac..3c5d7af 100644 (file)
@@ -109,7 +109,7 @@ static void generate_uuid(struct ast_uuid *uuid)
         * or /dev/urandom not existing on systems in this age is next to none.
         */
 
-       /* XXX Currently, we only protect this call if the user has no /dev/urandon on their system.
+       /* XXX Currently, we only protect this call if the user has no /dev/urandom on their system.
         * If it turns out that there are issues with UUID generation despite the presence of
         * /dev/urandom, then we may need to make the locking/unlocking unconditional.
         */
index ca219fd..c178fd6 100644 (file)
@@ -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",
index 12bedc4..78b8df2 100644 (file)
@@ -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++));
        }
 }
 
index e1d9d40..f2052a6 100644 (file)
@@ -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) {
index 09df7f2..2d7bafd 100644 (file)
@@ -1347,7 +1347,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;
                }
 
@@ -1509,7 +1509,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++]);
        }
 }
 
index 3e9ca8f..315b3b0 100644 (file)
@@ -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"
index fab32f0..21ab80d 100644 (file)
@@ -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");
       }