From 1f77c4320e473a28a7f3a30ea367fbfaa2c44784 Mon Sep 17 00:00:00 2001 From: Caolán McNamara Date: Tue, 31 Jul 2012 13:27:46 +0100 Subject: use of a pointer to a temporary strings buffer is very wrong Change-Id: Id5bee1f5120afb6efb60245a4606a4a15bb6db79 --- svl/source/svdde/ddesvr.cxx | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) (limited to 'svl') diff --git a/svl/source/svdde/ddesvr.cxx b/svl/source/svdde/ddesvr.cxx index ea221a76b846..d713191f31a4 100644 --- a/svl/source/svdde/ddesvr.cxx +++ b/svl/source/svdde/ddesvr.cxx @@ -1013,31 +1013,33 @@ String DdeService::Formats() { String s; long f; - TCHAR buf[128]; - LPCTSTR p; short n = 0; - for ( size_t i = 0; i < aFormats.size(); ++i, n++ ) + for (size_t i = 0; i < aFormats.size(); ++i, ++n) { f = aFormats[ i ]; if ( n ) s += '\t'; - p = buf; switch( (sal_uInt16)f ) { case CF_TEXT: - p = reinterpret_cast(String::CreateFromAscii("TEXT").GetBuffer()); + s += rtl::OUString("TEXT"); break; case CF_BITMAP: - p = reinterpret_cast(String::CreateFromAscii("BITMAP").GetBuffer()); + s += rtl::OUString("BITMAP"); break; default: - GetClipboardFormatName( (UINT)f, buf, sizeof(buf) / sizeof(TCHAR) ); + { + TCHAR buf[128]; + GetClipboardFormatName( (UINT)f, buf, sizeof(buf) / sizeof(TCHAR) ); + s += rtl::OUString(buf); + } + break; } - s += String( reinterpret_cast(p) ); + } - s += String::CreateFromAscii("\r\n"); + s += rtl::OUString("\r\n"); return s; } -- cgit