43 lines
1.5 KiB
Diff
43 lines
1.5 KiB
Diff
From 3e29dadae46fe4d1e26ff91c30d9d3b84eb6d84e Mon Sep 17 00:00:00 2001
|
|
From: Chun-wei Fan <fanchunwei@src.gnome.org>
|
|
Date: Tue, 23 Jun 2015 13:52:25 +0800
|
|
Subject: [PATCH] gio/ginetaddress.c: Fix Windows XP inet_pton() Emulation
|
|
|
|
We need to be more careful when we try to assign values to gpointers, so
|
|
that means we have to assign the value to the properly-dereference
|
|
gpointer, so that the assigned value will be retained after the function
|
|
returns. This code will be dropped soon, but it is done for XP
|
|
compatibility's sake for 2.44.
|
|
|
|
Should fix the issue reported in bug 730352 comment #24.
|
|
---
|
|
gio/ginetaddress.c | 5 +++--
|
|
1 file changed, 3 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/gio/ginetaddress.c b/gio/ginetaddress.c
|
|
index 8723c28..39610ae 100644
|
|
--- a/gio/ginetaddress.c
|
|
+++ b/gio/ginetaddress.c
|
|
@@ -417,7 +417,8 @@ inet_pton (gint family,
|
|
/* XXX: Figure out when WSAStringToAddress() accepts a IPv4 address but the
|
|
numbers-and-dots address is actually not complete. This code will be
|
|
removed once XP/Server 2003 support is dropped... */
|
|
- addr = &sin->sin_addr;
|
|
+ *(IN_ADDR *) addr = sin->sin_addr;
|
|
+
|
|
return 1;
|
|
}
|
|
}
|
|
@@ -425,7 +426,7 @@ inet_pton (gint family,
|
|
{
|
|
if (WSAStringToAddress ((LPTSTR) addr_string, AF_INET6, NULL, (LPSOCKADDR) &sa, &len) == 0)
|
|
{
|
|
- addr = &sin6->sin6_addr;
|
|
+ *(IN6_ADDR *) addr = sin6->sin6_addr;
|
|
return 1;
|
|
}
|
|
}
|
|
--
|
|
2.4.4
|
|
|