Marcus Meissner
3ea36eace3
OBS-URL: https://build.opensuse.org/package/show/Emulators/wine?expand=0&rev=19
42 lines
1.3 KiB
Diff
42 lines
1.3 KiB
Diff
From 4832105237c48b22caaaecd24f2b48e4c2b9bc8e Mon Sep 17 00:00:00 2001
|
|
From: Marcus Meissner <meissner@suse.de>
|
|
Date: Mon, 15 Feb 2010 17:23:05 +0100
|
|
Subject: [PATCH] shell32: replace strcpy by memcpy due to slightly undefined struct handling
|
|
|
|
Hi,
|
|
|
|
Writing over the end of a struct is only clearly defined if the struct
|
|
is standalone and not contained in another.
|
|
|
|
So for gcc 4.5 the strcpy triggers a fortify overflow error and we
|
|
better use memcpy.
|
|
|
|
Ciao, Marcus
|
|
---
|
|
dlls/shell32/pidl.c | 4 ++--
|
|
1 files changed, 2 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/dlls/shell32/pidl.c b/dlls/shell32/pidl.c
|
|
index 3e61144..4b8858b 100644
|
|
--- a/dlls/shell32/pidl.c
|
|
+++ b/dlls/shell32/pidl.c
|
|
@@ -1600,13 +1600,13 @@ LPITEMIDLIST _ILCreateEntireNetwork(void)
|
|
|
|
TRACE("\n");
|
|
|
|
- pidlOut = _ILAlloc(PT_NETWORK, FIELD_OFFSET(PIDLDATA, u.network.szNames[sizeof("Entire Network")]));
|
|
+ pidlOut = _ILAlloc(PT_NETWORK, FIELD_OFFSET(PIDLDATA, u.network.szNames[strlen("Entire Network")+1]));
|
|
if (pidlOut)
|
|
{
|
|
LPPIDLDATA pData = _ILGetDataPointer(pidlOut);
|
|
|
|
pData->u.network.dummy = 0;
|
|
- strcpy(pData->u.network.szNames, "Entire Network");
|
|
+ memcpy(pData->u.network.szNames, "Entire Network", strlen("Entire Network")+1);
|
|
}
|
|
return pidlOut;
|
|
}
|
|
--
|
|
1.6.6.1
|
|
|