libexttextcat/UnpackedTarball_exttextcat.mk | 1 + libexttextcat/exttextcat-memcpy.patch.1 | 16 ++++++++++++++++ linguistic/source/dicimp.cxx | 7 ++++++- sal/osl/w32/file_error.c | 1 + 4 files changed, 24 insertions(+), 1 deletion(-)
New commits: commit 1d8ae0c040319ba7d969fa236b7a6bb22d0f55df Author: Michael Stahl <mst...@redhat.com> Date: Fri Jul 5 00:11:53 2013 +0200 sal: add ERROR_SHARING_VIOLATION to win32 error table It's apparently a popular error; map it to E_ACCES which is the same as the catch-all clause does (for compatibility). Change-Id: I55fd932248a2ecbacd4fd6584e92918da95e3cff diff --git a/sal/osl/w32/file_error.c b/sal/osl/w32/file_error.c index 505cde5..f1cd9ce 100644 --- a/sal/osl/w32/file_error.c +++ b/sal/osl/w32/file_error.c @@ -55,6 +55,7 @@ static const struct osl_file_error_entry errtable[] = { { ERROR_NOT_SAME_DEVICE, osl_File_E_XDEV }, /* 17 */ { ERROR_NO_MORE_FILES, osl_File_E_NOENT }, /* 18 */ { ERROR_NOT_READY, osl_File_E_NOTREADY }, /* 21 */ + { ERROR_SHARING_VIOLATION, osl_File_E_ACCES }, /* 32 */ { ERROR_LOCK_VIOLATION, osl_File_E_ACCES }, /* 33 */ { ERROR_BAD_NETPATH, osl_File_E_NOENT }, /* 53 */ { ERROR_NETWORK_ACCESS_DENIED, osl_File_E_ACCES }, /* 65 */ commit d68de5195605bd9236851e0714dd9b03b0f5f3be Author: Michael Stahl <mst...@redhat.com> Date: Fri Jul 5 00:07:43 2013 +0200 fdo#66420: fix user dictionaries on Windows 28300209604ee1bb8e5050322b29e95a07f679d8 added yet another silly temp file wrapper class, and introduced 2 bugs: the file descriptor is not closed before renaming it which fails with ERROR_SHARING_VIOLATION on Win32, and (as a consequence of that) another attempt to save the dictionary during shutdown fails because SimpleFileAccess cannot be created and this is not checked. Change-Id: I7bd3f5d349ed550440a93fe71e3791c9919de3af diff --git a/linguistic/source/dicimp.cxx b/linguistic/source/dicimp.cxx index 083f4c5..5af73a8 100644 --- a/linguistic/source/dicimp.cxx +++ b/linguistic/source/dicimp.cxx @@ -393,7 +393,10 @@ struct TmpDictionary { try { - mxAccess->kill(maTmpURL); + if (mxAccess.is()) + { + mxAccess->kill(maTmpURL); + } } catch (const uno::Exception &) { } } @@ -492,6 +495,8 @@ sal_uLong DictionaryNeo::saveEntries(const OUString &rURL) break; } + pStream.reset(); // fdo#66420 close streams so Win32 can move the file + xStream.clear(); nErr = aTmpDictionary.renameTmpToURL(); //If we are migrating from an older version, then on first successful commit 3bde0af3a8fd09defd47465d4b62541350cecc1c Author: Michael Stahl <mst...@redhat.com> Date: Thu Jul 4 23:12:53 2013 +0200 libexttextcat: fix overlapping memcpy Change-Id: I3225043560a3c0e02345bc4e8a8d0f9cca2e3cd0 diff --git a/libexttextcat/UnpackedTarball_exttextcat.mk b/libexttextcat/UnpackedTarball_exttextcat.mk index ef90108..1bf53fb 100644 --- a/libexttextcat/UnpackedTarball_exttextcat.mk +++ b/libexttextcat/UnpackedTarball_exttextcat.mk @@ -13,6 +13,7 @@ $(eval $(call gb_UnpackedTarball_set_tarball,exttextcat,$(LIBEXTTEXTCAT_TARBALL) $(eval $(call gb_UnpackedTarball_add_patches,exttextcat,\ libexttextcat/android.patch \ + libexttextcat/exttextcat-memcpy.patch.1 \ )) # vim: set noet sw=4 ts=4: diff --git a/libexttextcat/exttextcat-memcpy.patch.1 b/libexttextcat/exttextcat-memcpy.patch.1 new file mode 100644 index 0000000..b3e399a --- /dev/null +++ b/libexttextcat/exttextcat-memcpy.patch.1 @@ -0,0 +1,16 @@ +fix overlapped memcpy in heapextract + +--- a/src/fingerprint.c 2013-07-04 22:53:25.674741538 +0200 ++++ b/src/fingerprint.c 2013-07-04 22:54:09.009741166 +0200 +@@ -254,7 +254,10 @@ + p = &(t->heap[0]); + + memcpy(item, p, sizeof(entry_t)); +- memcpy(&(t->heap[0]), &(t->heap[t->size - 1]), sizeof(entry_t)); ++ if (t->size > 1) ++ { ++ memcpy(&(t->heap[0]), &(t->heap[t->size - 1]), sizeof(entry_t)); ++ } + + siftdown(t, t->size, 0); + t->size--; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits