mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-06-04 14:39:54 +00:00
pidgin-sipe: Fix build with glib-2.0 >= 2.68
Signed-off-by: Khem Raj <raj.khem@gmail.com> Cc: Martin Jansa <Martin.Jansa@gmail.com>
This commit is contained in:
@@ -0,0 +1,192 @@
|
||||
From 40799bb28a9e299055eec00092694ea2e408c431 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Mon, 5 Apr 2021 11:36:50 -0700
|
||||
Subject: [PATCH] Migrate to use g_memdup2
|
||||
|
||||
g_memdup has been deprecated for long and latest glib-2.0 2.68+ has
|
||||
turned it int an error to use old function. Add a fall back to
|
||||
older versions of GLib, fall back to g_memdup with a #define
|
||||
|
||||
Upstream-Status: Pending
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
configure.ac | 3 +++
|
||||
src/api/sipe-common.h | 5 +++++
|
||||
src/core/sip-sec-gssapi.c | 4 ++--
|
||||
src/core/sip-sec-ntlm.c | 12 ++++++------
|
||||
src/core/sip-sec-tls-dsk.c | 4 ++--
|
||||
src/core/sipe-media.c | 2 +-
|
||||
src/core/sipe-tls-tester.c | 2 +-
|
||||
src/core/sipe-tls.c | 4 ++--
|
||||
src/telepathy/telepathy-protocol.c | 2 +-
|
||||
9 files changed, 23 insertions(+), 15 deletions(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 2481153..efe01b4 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -327,6 +327,9 @@ AM_CONDITIONAL(SIPE_OPENSSL, [test "x$enable_openssl" != xno])
|
||||
dnl check for libxml2
|
||||
PKG_CHECK_MODULES(LIBXML2, [libxml-2.0])
|
||||
|
||||
+# dnl check for g_memdup2 in glib-2.0
|
||||
+AC_CHECK_LIB(glib-2.0, g_memdup2, [GLIB_CFLAGS="$GLIB_CFLAGS -DHAVE_G_MEMDUP2=1"])
|
||||
+
|
||||
dnl assumption check: sizof(uuid_t) must be 16 (see uuid.c)
|
||||
AC_MSG_CHECKING([that sizeof(uuid_t) is 16])
|
||||
ac_save_CFLAGS="$CFLAGS"
|
||||
diff --git a/src/api/sipe-common.h b/src/api/sipe-common.h
|
||||
index c964f15..e114fdc 100644
|
||||
--- a/src/api/sipe-common.h
|
||||
+++ b/src/api/sipe-common.h
|
||||
@@ -51,3 +51,8 @@
|
||||
#ifdef _MSC_VER
|
||||
typedef long ssize_t;
|
||||
#endif
|
||||
+
|
||||
+#ifndef HAVE_G_MEMDUP2
|
||||
+#define g_memdup2 g_memdup
|
||||
+#endif
|
||||
+
|
||||
diff --git a/src/core/sip-sec-gssapi.c b/src/core/sip-sec-gssapi.c
|
||||
index 873080f..4c63868 100644
|
||||
--- a/src/core/sip-sec-gssapi.c
|
||||
+++ b/src/core/sip-sec-gssapi.c
|
||||
@@ -602,7 +602,7 @@ sip_sec_init_sec_context__gssapi(SipSecContext context,
|
||||
|
||||
out_buff->length = output_token.length;
|
||||
if (out_buff->length)
|
||||
- out_buff->value = g_memdup(output_token.value, output_token.length);
|
||||
+ out_buff->value = g_memdup2(output_token.value, output_token.length);
|
||||
else
|
||||
/* Special case: empty token */
|
||||
out_buff->value = (guint8 *) g_strdup("");
|
||||
@@ -653,7 +653,7 @@ sip_sec_make_signature__gssapi(SipSecContext context,
|
||||
return FALSE;
|
||||
} else {
|
||||
signature->length = output_token.length;
|
||||
- signature->value = g_memdup(output_token.value,
|
||||
+ signature->value = g_memdup2(output_token.value,
|
||||
output_token.length);
|
||||
gss_release_buffer(&minor, &output_token);
|
||||
return TRUE;
|
||||
diff --git a/src/core/sip-sec-ntlm.c b/src/core/sip-sec-ntlm.c
|
||||
index 2e2354f..1fa4daa 100644
|
||||
--- a/src/core/sip-sec-ntlm.c
|
||||
+++ b/src/core/sip-sec-ntlm.c
|
||||
@@ -951,7 +951,7 @@ sip_sec_ntlm_parse_challenge(SipSecBuffer in_buff,
|
||||
|
||||
/* server challenge (nonce) */
|
||||
if (server_challenge) {
|
||||
- *server_challenge = g_memdup(cmsg->nonce, 8);
|
||||
+ *server_challenge = g_memdup2(cmsg->nonce, 8);
|
||||
}
|
||||
|
||||
/* flags */
|
||||
@@ -984,7 +984,7 @@ sip_sec_ntlm_parse_challenge(SipSecBuffer in_buff,
|
||||
*target_info_len = len;
|
||||
}
|
||||
if (target_info) {
|
||||
- *target_info = g_memdup(content, len);
|
||||
+ *target_info = g_memdup2(content, len);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1117,13 +1117,13 @@ sip_sec_ntlm_gen_authenticate(guchar **client_sign_key,
|
||||
Set ServerSigningKey to SIGNKEY(ExportedSessionKey, "Server")
|
||||
*/
|
||||
SIGNKEY(exported_session_key, TRUE, key);
|
||||
- *client_sign_key = g_memdup(key, 16);
|
||||
+ *client_sign_key = g_memdup2(key, 16);
|
||||
SIGNKEY(exported_session_key, FALSE, key);
|
||||
- *server_sign_key = g_memdup(key, 16);
|
||||
+ *server_sign_key = g_memdup2(key, 16);
|
||||
SEALKEY(neg_flags, exported_session_key, TRUE, key);
|
||||
- *client_seal_key = g_memdup(key, 16);
|
||||
+ *client_seal_key = g_memdup2(key, 16);
|
||||
SEALKEY(neg_flags, exported_session_key, FALSE, key);
|
||||
- *server_seal_key = g_memdup(key, 16);
|
||||
+ *server_seal_key = g_memdup2(key, 16);
|
||||
}
|
||||
|
||||
/* @TODO: */
|
||||
diff --git a/src/core/sip-sec-tls-dsk.c b/src/core/sip-sec-tls-dsk.c
|
||||
index 70433ea..2d3f2db 100644
|
||||
--- a/src/core/sip-sec-tls-dsk.c
|
||||
+++ b/src/core/sip-sec-tls-dsk.c
|
||||
@@ -88,9 +88,9 @@ sip_sec_init_sec_context__tls_dsk(SipSecContext context,
|
||||
/* copy key pair */
|
||||
ctx->algorithm = state->algorithm;
|
||||
ctx->key_length = state->key_length;
|
||||
- ctx->client_key = g_memdup(state->client_key,
|
||||
+ ctx->client_key = g_memdup2(state->client_key,
|
||||
state->key_length);
|
||||
- ctx->server_key = g_memdup(state->server_key,
|
||||
+ ctx->server_key = g_memdup2(state->server_key,
|
||||
state->key_length);
|
||||
|
||||
/* extract certicate expiration time */
|
||||
diff --git a/src/core/sipe-media.c b/src/core/sipe-media.c
|
||||
index e9c4b8a..936e31c 100644
|
||||
--- a/src/core/sipe-media.c
|
||||
+++ b/src/core/sipe-media.c
|
||||
@@ -578,7 +578,7 @@ media_stream_to_sdpmedia(struct sipe_media_call_private *call_private,
|
||||
// Set our key if encryption is enabled.
|
||||
if (stream_private->encryption_key &&
|
||||
encryption_policy != SIPE_ENCRYPTION_POLICY_REJECTED) {
|
||||
- sdpmedia->encryption_key = g_memdup(stream_private->encryption_key,
|
||||
+ sdpmedia->encryption_key = g_memdup2(stream_private->encryption_key,
|
||||
SIPE_SRTP_KEY_LEN);
|
||||
sdpmedia->encryption_key_id = stream_private->encryption_key_id;
|
||||
}
|
||||
diff --git a/src/core/sipe-tls-tester.c b/src/core/sipe-tls-tester.c
|
||||
index e80d715..5fbb5f8 100644
|
||||
--- a/src/core/sipe-tls-tester.c
|
||||
+++ b/src/core/sipe-tls-tester.c
|
||||
@@ -155,7 +155,7 @@ static guchar *read_tls_record(int fd,
|
||||
printf("received %d bytes from server\n", result);
|
||||
record = g_new0(struct record, 1);
|
||||
record->length = result;
|
||||
- record->msg = g_memdup(buffer, result);
|
||||
+ record->msg = g_memdup2(buffer, result);
|
||||
length += result;
|
||||
fragments = g_slist_append(fragments, record);
|
||||
}
|
||||
diff --git a/src/core/sipe-tls.c b/src/core/sipe-tls.c
|
||||
index b0235d5..020aedb 100644
|
||||
--- a/src/core/sipe-tls.c
|
||||
+++ b/src/core/sipe-tls.c
|
||||
@@ -427,7 +427,7 @@ static guchar *sipe_tls_prf(SIPE_UNUSED_PARAMETER struct tls_internal_state *sta
|
||||
gsize half = (secret_length + 1) / 2;
|
||||
gsize newseed_length = label_length + seed_length;
|
||||
/* secret: used as S1; secret2: last half of original secret (S2) */
|
||||
- guchar *secret2 = g_memdup(secret + secret_length - half, half);
|
||||
+ guchar *secret2 = g_memdup2(secret + secret_length - half, half);
|
||||
guchar *newseed = g_malloc(newseed_length);
|
||||
guchar *md5, *dest;
|
||||
guchar *sha1, *src;
|
||||
@@ -1525,7 +1525,7 @@ static struct tls_compiled_message *tls_client_key_exchange(struct tls_internal_
|
||||
|
||||
/* found all the required fields */
|
||||
state->server_random.length = server_random->length;
|
||||
- state->server_random.buffer = g_memdup(server_random->data,
|
||||
+ state->server_random.buffer = g_memdup2(server_random->data,
|
||||
server_random->length);
|
||||
tls_calculate_secrets(state);
|
||||
|
||||
diff --git a/src/telepathy/telepathy-protocol.c b/src/telepathy/telepathy-protocol.c
|
||||
index f6e5337..1dde579 100644
|
||||
--- a/src/telepathy/telepathy-protocol.c
|
||||
+++ b/src/telepathy/telepathy-protocol.c
|
||||
@@ -237,7 +237,7 @@ static void get_connection_details(SIPE_UNUSED_PARAMETER TpBaseProtocol *self,
|
||||
SIPE_TYPE_SEARCH_MANAGER,
|
||||
G_TYPE_INVALID
|
||||
};
|
||||
- *channel_managers = g_memdup(types, sizeof(types));
|
||||
+ *channel_managers = g_memdup2(types, sizeof(types));
|
||||
}
|
||||
if (icon_name)
|
||||
*icon_name = g_strdup("im-" SIPE_TELEPATHY_DOMAIN);
|
||||
--
|
||||
2.31.1
|
||||
|
||||
@@ -11,6 +11,7 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/sipe/pidgin-sipe-${PV}.tar.xz \
|
||||
file://0001-sipe-consider-64bit-time_t-when-printing.patch \
|
||||
file://0001-Align-structs-casts-with-time_t-elements-to-8byte-bo.patch \
|
||||
file://0001-configure-Do-not-add-native-paths-to-pkgconfig-searc.patch \
|
||||
file://0001-Migrate-to-use-g_memdup2.patch \
|
||||
"
|
||||
|
||||
SRC_URI[md5sum] = "0e742f021dc8c3f17435aea05c3e0314"
|
||||
|
||||
Reference in New Issue
Block a user