From 377a01b2a7f9df963c0501eab30df7f8c64686f4 Mon Sep 17 00:00:00 2001 From: Nanang Izzuddin Date: Tue, 24 Jan 2017 05:41:05 +0000 Subject: Misc (re #1945): Fixed compile warnings on Android 64bit platforms, e.g: dereferencing type-punned pointer, using uninitialized var. git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@5544 74dad513-b988-da41-8d7b-12977e46ad98 --- pjlib-util/src/pjlib-util/md5.c | 6 ++++-- pjlib/src/pj/sock_bsd.c | 5 +++-- pjlib/src/pj/ssl_sock_ossl.c | 4 ++-- pjmedia/src/pjmedia-audiodev/android_jni_dev.c | 4 ++-- pjmedia/src/pjmedia-videodev/android_dev.c | 8 ++++---- pjmedia/src/pjmedia/avi_player.c | 4 +++- pjnath/src/pjnath/stun_msg_dump.c | 8 +++++--- 7 files changed, 23 insertions(+), 16 deletions(-) diff --git a/pjlib-util/src/pjlib-util/md5.c b/pjlib-util/src/pjlib-util/md5.c index 45aee07d..7f393069 100644 --- a/pjlib-util/src/pjlib-util/md5.c +++ b/pjlib-util/src/pjlib-util/md5.c @@ -151,8 +151,10 @@ PJ_DEF(void) pj_md5_final(pj_md5_context *ctx, unsigned char digest[16]) byteReverse(ctx->in, 14); /* Append length in bits and transform */ - ((pj_uint32_t *) ctx->in)[14] = ctx->bits[0]; - ((pj_uint32_t *) ctx->in)[15] = ctx->bits[1]; + //((pj_uint32_t *) ctx->in)[14] = ctx->bits[0]; + //((pj_uint32_t *) ctx->in)[15] = ctx->bits[1]; + pj_memcpy(&ctx->in[14 << 2], &ctx->bits[0], sizeof(ctx->bits[0])); + pj_memcpy(&ctx->in[15 << 2], &ctx->bits[1], sizeof(ctx->bits[1])); MD5Transform(ctx->buf, (pj_uint32_t *) ctx->in); byteReverse((unsigned char *) ctx->buf, 4); diff --git a/pjlib/src/pj/sock_bsd.c b/pjlib/src/pj/sock_bsd.c index d6b18990..d73654bb 100644 --- a/pjlib/src/pj/sock_bsd.c +++ b/pjlib/src/pj/sock_bsd.c @@ -228,11 +228,12 @@ PJ_DEF(pj_uint32_t) pj_htonl(pj_uint32_t hostlong) */ PJ_DEF(char*) pj_inet_ntoa(pj_in_addr inaddr) { -#if !defined(PJ_LINUX) && !defined(PJ_LINUX_KERNEL) +#if 0 //!defined(PJ_LINUX) && !defined(PJ_LINUX_KERNEL) return inet_ntoa(*(struct in_addr*)&inaddr); #else struct in_addr addr; - addr.s_addr = inaddr.s_addr; + //addr.s_addr = inaddr.s_addr; + pj_memcpy(&addr, &inaddr, sizeof(addr)); return inet_ntoa(addr); #endif } diff --git a/pjlib/src/pj/ssl_sock_ossl.c b/pjlib/src/pj/ssl_sock_ossl.c index 86a9351a..f8e3a2dd 100644 --- a/pjlib/src/pj/ssl_sock_ossl.c +++ b/pjlib/src/pj/ssl_sock_ossl.c @@ -1321,8 +1321,8 @@ static void get_cert_info(pj_pool_t *pool, pj_ssl_cert_info *ci, X509 *x, type = PJ_SSL_CERT_NAME_URI; break; case GEN_IPADD: - p = ASN1_STRING_data(name->d.ip); - len = ASN1_STRING_length(name->d.ip); + p = (unsigned char*)M_ASN1_STRING_data(name->d.ip); + len = M_ASN1_STRING_length(name->d.ip); type = PJ_SSL_CERT_NAME_IP; break; default: diff --git a/pjmedia/src/pjmedia-audiodev/android_jni_dev.c b/pjmedia/src/pjmedia-audiodev/android_jni_dev.c index b6b47ad0..3944a289 100644 --- a/pjmedia/src/pjmedia-audiodev/android_jni_dev.c +++ b/pjmedia/src/pjmedia-audiodev/android_jni_dev.c @@ -544,7 +544,7 @@ static pj_status_t android_create_stream(pjmedia_aud_dev_factory *f, struct android_aud_stream *stream; pj_status_t status = PJ_SUCCESS; int state = 0; - int buffSize, inputBuffSizePlay, inputBuffSizeRec; + int buffSize, inputBuffSizePlay = 0, inputBuffSizeRec = 0; int channelInCfg, channelOutCfg, sampleFormat; jmethodID constructor_method=0, bufsize_method = 0; jmethodID method_id = 0; @@ -931,7 +931,7 @@ static pj_status_t strm_set_cap(pjmedia_aud_stream *s, { if (stream->track) { jmethodID vol_method = 0; - int retval; + int retval = 0; float vol = *(int *)value; attached = attach_jvm(&jni_env); diff --git a/pjmedia/src/pjmedia-videodev/android_dev.c b/pjmedia/src/pjmedia-videodev/android_dev.c index 1da72610..fd27cf2a 100644 --- a/pjmedia/src/pjmedia-videodev/android_dev.c +++ b/pjmedia/src/pjmedia-videodev/android_dev.c @@ -750,7 +750,7 @@ static pj_status_t and_factory_create_stream( const pjmedia_video_format_detail *vfd; const pjmedia_video_format_info *vfi; pjmedia_video_apply_fmt_param vafp; - pj_uint32_t and_fmt; + pj_uint32_t and_fmt = 0; unsigned convert_to_i420 = 0; pj_status_t status = PJ_SUCCESS; @@ -1107,12 +1107,12 @@ static void JNICALL OnGetFrame(JNIEnv *env, jobject obj, jbyteArray data, jint length, jlong user_data) { - and_stream *strm = *(and_stream**)&user_data; + and_stream *strm = (and_stream*)(intptr_t)user_data; pjmedia_frame f; pj_uint8_t *Y, *U, *V; pj_status_t status; - void *frame_buf, *data_buf; - + void *frame_buf, *data_buf; + strm->frame_ts.u64 += strm->ts_inc; if (!strm->vid_cb.capture_cb) return; diff --git a/pjmedia/src/pjmedia/avi_player.c b/pjmedia/src/pjmedia/avi_player.c index 15fa73a1..8cc9742e 100644 --- a/pjmedia/src/pjmedia/avi_player.c +++ b/pjmedia/src/pjmedia/avi_player.c @@ -44,7 +44,9 @@ #define AVI_EOF 0xFFEEFFEE -#define COMPARE_TAG(doc_tag, tag) (doc_tag == *((pj_uint32_t *)avi_tags[tag])) +//#define COMPARE_TAG(doc_tag, tag) (doc_tag==*((pj_uint32_t*)avi_tags[tag])) +#define COMPARE_TAG(doc_tag, tag) \ + (pj_memcmp(&(doc_tag), &avi_tags[tag], 4)==0) #define SIGNATURE PJMEDIA_SIG_PORT_VID_AVI_PLAYER diff --git a/pjnath/src/pjnath/stun_msg_dump.c b/pjnath/src/pjnath/stun_msg_dump.c index f38e2750..91d41c7a 100644 --- a/pjnath/src/pjnath/stun_msg_dump.c +++ b/pjnath/src/pjnath/stun_msg_dump.c @@ -256,6 +256,7 @@ PJ_DEF(char*) pj_stun_msg_dump(const pj_stun_msg *msg, char *p, *end; int len; unsigned i; + pj_uint32_t tsx_id[3]; PJ_ASSERT_RETURN(msg && buffer && length, NULL); @@ -269,14 +270,15 @@ PJ_DEF(char*) pj_stun_msg_dump(const pj_stun_msg *msg, pj_stun_get_class_name(msg->hdr.type)); APPLY(); + pj_memcpy(tsx_id, msg->hdr.tsx_id, sizeof(msg->hdr.tsx_id)); len = pj_ansi_snprintf(p, end-p, " Hdr: length=%d, magic=%08x, tsx_id=%08x%08x%08x\n" " Attributes:\n", msg->hdr.length, msg->hdr.magic, - *(pj_uint32_t*)&msg->hdr.tsx_id[0], - *(pj_uint32_t*)&msg->hdr.tsx_id[4], - *(pj_uint32_t*)&msg->hdr.tsx_id[8]); + tsx_id[0], + tsx_id[1], + tsx_id[2]); APPLY(); for (i=0; iattr_count; ++i) { -- cgit v1.2.3