summarylogtreecommitdiffstats
path: root/wine-25946b48148784e8275c1685f6498ab88f553ca3.patch
blob: c65a533a7d9cbf0edcbb9fbb508366c543c23a28 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
From 25946b48148784e8275c1685f6498ab88f553ca3 Mon Sep 17 00:00:00 2001
From: Eric Pouech <eric.pouech@gmail.com>
Date: Fri, 4 Feb 2022 09:34:49 +0100
Subject: [PATCH] wldap32: Fix compilation in 32-bit.

32-bit compilation has been broken by 8db1662d749991a77b8945c752ab024d2d6b1244.

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
---
 dlls/wldap32/libldap.c | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

diff --git a/dlls/wldap32/libldap.c b/dlls/wldap32/libldap.c
index 8872421dabcd..592e526ecdc0 100644
--- a/dlls/wldap32/libldap.c
+++ b/dlls/wldap32/libldap.c
@@ -53,7 +53,14 @@ C_ASSERT( sizeof(LDAPSortKeyU) == sizeof(LDAPSortKey) );
 C_ASSERT( sizeof(LDAPVLVInfoU) == sizeof(LDAPVLVInfo) );
 C_ASSERT( sizeof(LDAPAPIInfoU) == sizeof(LDAPAPIInfo) );
 C_ASSERT( sizeof(LDAPAPIFeatureInfoU) == sizeof(LDAPAPIFeatureInfo) );
-C_ASSERT( sizeof(struct timevalU) == sizeof(struct timeval) );
+
+static struct timeval *convert_timeval(const struct timevalU *tvu, struct timeval *tv)
+{
+    if (!tvu) return NULL;
+    tv->tv_sec = tvu->tv_sec;
+    tv->tv_usec = tvu->tv_usec;
+    return tv;
+}
 
 #define WLDAP32_LBER_ERROR  (~0l)
 
@@ -488,8 +495,9 @@ static NTSTATUS wrap_ldap_rename_s( void *args )
 static NTSTATUS wrap_ldap_result( void *args )
 {
     struct ldap_result_params *params = args;
+    struct timeval tv;
     return ldap_result( params->ld, params->msgid, params->all,
-                        (struct timeval *)params->timeout, (LDAPMessage **)params->result );
+                        convert_timeval(params->timeout, &tv), (LDAPMessage **)params->result );
 }
 
 static NTSTATUS wrap_ldap_sasl_bind( void *args )
@@ -555,18 +563,20 @@ static NTSTATUS wrap_ldap_sasl_interactive_bind_s( void *args )
 static NTSTATUS wrap_ldap_search_ext( void *args )
 {
     struct ldap_search_ext_params *params = args;
+    struct timeval tv;
     return ldap_search_ext( params->ld, params->base, params->scope, params->filter, params->attrs,
                             params->attrsonly, (LDAPControl **)params->serverctrls,
-                            (LDAPControl **)params->clientctrls, (struct timeval *)params->timeout,
+                            (LDAPControl **)params->clientctrls, convert_timeval(params->timeout, &tv),
                             params->sizelimit, (int *)params->msg );
 }
 
 static NTSTATUS wrap_ldap_search_ext_s( void *args )
 {
     struct ldap_search_ext_s_params *params = args;
+    struct timeval tv;
     return ldap_search_ext_s( params->ld, params->base, params->scope, params->filter, params->attrs,
                               params->attrsonly, (LDAPControl **)params->serverctrls,
-                              (LDAPControl **)params->clientctrls, (struct timeval *)params->timeout,
+                              (LDAPControl **)params->clientctrls, convert_timeval(params->timeout, &tv),
                               params->sizelimit, (LDAPMessage **)params->result );
 }