Module: wine
Branch: master
Commit: 2e0aefc1fd60e0e9f800e68eaaa905f031e3b544
URL: http://source.winehq.org/git/wine.git/?a=commit;h=2e0aefc1fd60e0e9f800e68ea…
Author: Rob Shearman <robertshearman(a)gmail.com>
Date: Sat Dec 27 17:35:50 2008 +0000
widl: Structures and arrays with pointers should be complex when generating code for 64-bit platforms.
The non-complex variants depend on the wire size of the
structure/array matching the buffer size, but this no longer applies
when pointers are 8 bytes instead of 4.
---
tools/widl/typegen.c | 14 ++++++++++++++
1 files changed, 14 insertions(+), 0 deletions(-)
diff --git a/tools/widl/typegen.c b/tools/widl/typegen.c
index ed9430c..0406eb9 100644
--- a/tools/widl/typegen.c
+++ b/tools/widl/typegen.c
@@ -212,14 +212,28 @@ static int get_struct_type(const type_t *type)
break;
case RPC_FC_RP:
+ return RPC_FC_BOGUS_STRUCT;
+
case RPC_FC_UP:
case RPC_FC_FP:
case RPC_FC_OP:
+ if (pointer_size != 4)
+ return RPC_FC_BOGUS_STRUCT;
+ has_pointer = 1;
+ break;
+
case RPC_FC_CARRAY:
case RPC_FC_CVARRAY:
case RPC_FC_BOGUS_ARRAY:
+ {
+ unsigned int ptr_type = get_attrv(field->attrs, ATTR_POINTERTYPE);
+ if (!ptr_type || ptr_type == RPC_FC_RP)
+ return RPC_FC_BOGUS_STRUCT;
+ else if (pointer_size != 4)
+ return RPC_FC_BOGUS_STRUCT;
has_pointer = 1;
break;
+ }
/*
* Propagate member attributes
Module: wine
Branch: master
Commit: c9977df85306f0403c7eeeee7fd041d9b3ac88f8
URL: http://source.winehq.org/git/wine.git/?a=commit;h=c9977df85306f0403c7eeeee7…
Author: Dylan Smith <dylan.ah.smith(a)gmail.com>
Date: Sat Dec 27 00:06:40 2008 -0500
richedit: Prevented a dereference of a freed pointer.
On WM_DESTROY the editor was getting freed, then it was used to obtain
a handle to the editor. This patch moves it just before the editor is
freed within ME_DestroyEditor.
---
dlls/riched20/editor.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/dlls/riched20/editor.c b/dlls/riched20/editor.c
index c93a1e4..b5a69f7 100644
--- a/dlls/riched20/editor.c
+++ b/dlls/riched20/editor.c
@@ -2685,6 +2685,7 @@ void ME_DestroyEditor(ME_TextEditor *editor)
DeleteObject(editor->hbrBackground);
if(editor->lpOleCallback)
IUnknown_Release(editor->lpOleCallback);
+ SetWindowLongPtrW(editor->hWnd, 0, 0);
OleUninitialize();
FREE_OBJ(editor->pBuffer);
@@ -3821,7 +3822,6 @@ LRESULT ME_HandleMessage(ME_TextEditor *editor, UINT msg, WPARAM wParam,
}
case WM_DESTROY:
ME_DestroyEditor(editor);
- SetWindowLongPtrW(editor->hWnd, 0, 0);
return 0;
case WM_SETCURSOR:
{
Module: wine
Branch: master
Commit: e5ad41bce36372ebfd3b02bcb7b403d0df457622
URL: http://source.winehq.org/git/wine.git/?a=commit;h=e5ad41bce36372ebfd3b02bcb…
Author: Alexandre Julliard <julliard(a)winehq.org>
Date: Sat Dec 27 20:06:28 2008 +0100
libport: Check for ENOTSUP being defined before using it.
---
libs/port/spawn.c | 5 ++++-
1 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/libs/port/spawn.c b/libs/port/spawn.c
index 490abb3..38c2944 100644
--- a/libs/port/spawn.c
+++ b/libs/port/spawn.c
@@ -43,7 +43,10 @@ int spawnvp(int mode, const char *cmdname, const char *const argv[])
{
execvp(cmdname, (char **)argv);
/* if we get here it failed */
- if (errno != ENOTSUP) return -1; /* exec fails on MacOS if the process has multiple threads */
+#ifdef ENOTSUP
+ if (errno != ENOTSUP) /* exec fails on MacOS if the process has multiple threads */
+#endif
+ return -1;
}
dfl_act.sa_handler = SIG_DFL;