From 88f6e898c617c6c4ffc560922c6c19ba9bebe915 Mon Sep 17 00:00:00 2001 From: Erich Hoover Date: Fri, 27 Jan 2012 09:48:47 -0700 Subject: [PATCH] itss: Enlarge buffer to include space for a concatenated value. --- dlls/itss/storage.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/dlls/itss/storage.c b/dlls/itss/storage.c index 4f687c6c7b4..c53b0c27a7c 100644 --- a/dlls/itss/storage.c +++ b/dlls/itss/storage.c @@ -406,7 +406,6 @@ static HRESULT WINAPI ITSS_IStorageImpl_OpenStorage( IStorage** ppstg) { ITSS_IStorageImpl *This = impl_from_IStorage(iface); - static const WCHAR szRoot[] = { '/', 0 }; struct chmFile *chmfile; WCHAR *path, *p; DWORD len; @@ -418,7 +417,7 @@ static HRESULT WINAPI ITSS_IStorageImpl_OpenStorage( if( !chmfile ) return E_FAIL; - len = strlenW( This->dir ) + strlenW( pwcsName ) + 1; + len = strlenW( This->dir ) + strlenW( pwcsName ) + 2; /* need room for a terminating slash */ path = HeapAlloc( GetProcessHeap(), 0, len*sizeof(WCHAR) ); strcpyW( path, This->dir ); @@ -435,10 +434,12 @@ static HRESULT WINAPI ITSS_IStorageImpl_OpenStorage( *p = '/'; } - if(*--p == '/') + /* add a terminating slash if one does not already exist */ + if(*(p-1) != '/') + { + *p++ = '/'; *p = 0; - - strcatW( path, szRoot ); + } TRACE("Resolving %s\n", debugstr_w(path)); -- 2.11.4.GIT