Re-add OOo issue 64906 workaround for FreeBSD. The root cause of the crash

is i65462 but it was dormant until i65004 was closed.

Approved by:	maho
This commit is contained in:
Jung-uk Kim 2007-04-09 16:29:52 +00:00
parent 1f9a1ee631
commit 54b8a72bde
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=189577
4 changed files with 96 additions and 0 deletions

View file

@ -0,0 +1,24 @@
Re-add #i64906# workaround. The root cause of the crash is #i65462#.
Also see #i65004# for more information.
--- sal/osl/unx/security.c 14 Mar 2007 08:28:11 -0000 1.24
+++ sal/osl/unx/security.c 6 Apr 2007 05:59:15 -0000
@@ -76,6 +76,10 @@
static sal_Bool SAL_CALL osl_psz_getConfigDir(oslSecurity Security, sal_Char* pszDirectory, sal_uInt32 nMax);
static oslSecurityImpl * newSecurityImpl(size_t * bufSize) {
+#if defined (MACOSX) || defined (FREEBSD)
+ /* #i64906#: sysconf(_SC_GETPW_R_SIZE_MAX) returns -1 on Mac OS X and FreeBSD */
+ size_t n = 1024;
+#else
long m;
size_t n;
errno = 0;
@@ -95,6 +99,7 @@
OSL_ASSERT(m >= 0 && (unsigned long) m < SIZE_MAX);
n = (size_t) m;
}
+#endif
if (n <= SIZE_MAX - offsetof(oslSecurityImpl, m_buffer)) {
*bufSize = n;
n += offsetof(oslSecurityImpl, m_buffer);

View file

@ -0,0 +1,24 @@
Re-add #i64906# workaround. The root cause of the crash is #i65462#.
Also see #i65004# for more information.
--- sal/osl/unx/security.c 14 Mar 2007 08:28:11 -0000 1.24
+++ sal/osl/unx/security.c 6 Apr 2007 05:59:15 -0000
@@ -76,6 +76,10 @@
static sal_Bool SAL_CALL osl_psz_getConfigDir(oslSecurity Security, sal_Char* pszDirectory, sal_uInt32 nMax);
static oslSecurityImpl * newSecurityImpl(size_t * bufSize) {
+#if defined (MACOSX) || defined (FREEBSD)
+ /* #i64906#: sysconf(_SC_GETPW_R_SIZE_MAX) returns -1 on Mac OS X and FreeBSD */
+ size_t n = 1024;
+#else
long m;
size_t n;
errno = 0;
@@ -95,6 +99,7 @@
OSL_ASSERT(m >= 0 && (unsigned long) m < SIZE_MAX);
n = (size_t) m;
}
+#endif
if (n <= SIZE_MAX - offsetof(oslSecurityImpl, m_buffer)) {
*bufSize = n;
n += offsetof(oslSecurityImpl, m_buffer);

View file

@ -0,0 +1,24 @@
Re-add #i64906# workaround. The root cause of the crash is #i65462#.
Also see #i65004# for more information.
--- sal/osl/unx/security.c 14 Mar 2007 08:28:11 -0000 1.24
+++ sal/osl/unx/security.c 6 Apr 2007 05:59:15 -0000
@@ -76,6 +76,10 @@
static sal_Bool SAL_CALL osl_psz_getConfigDir(oslSecurity Security, sal_Char* pszDirectory, sal_uInt32 nMax);
static oslSecurityImpl * newSecurityImpl(size_t * bufSize) {
+#if defined (MACOSX) || defined (FREEBSD)
+ /* #i64906#: sysconf(_SC_GETPW_R_SIZE_MAX) returns -1 on Mac OS X and FreeBSD */
+ size_t n = 1024;
+#else
long m;
size_t n;
errno = 0;
@@ -95,6 +99,7 @@
OSL_ASSERT(m >= 0 && (unsigned long) m < SIZE_MAX);
n = (size_t) m;
}
+#endif
if (n <= SIZE_MAX - offsetof(oslSecurityImpl, m_buffer)) {
*bufSize = n;
n += offsetof(oslSecurityImpl, m_buffer);

View file

@ -0,0 +1,24 @@
Re-add #i64906# workaround. The root cause of the crash is #i65462#.
Also see #i65004# for more information.
--- sal/osl/unx/security.c 14 Mar 2007 08:28:11 -0000 1.24
+++ sal/osl/unx/security.c 6 Apr 2007 05:59:15 -0000
@@ -76,6 +76,10 @@
static sal_Bool SAL_CALL osl_psz_getConfigDir(oslSecurity Security, sal_Char* pszDirectory, sal_uInt32 nMax);
static oslSecurityImpl * newSecurityImpl(size_t * bufSize) {
+#if defined (MACOSX) || defined (FREEBSD)
+ /* #i64906#: sysconf(_SC_GETPW_R_SIZE_MAX) returns -1 on Mac OS X and FreeBSD */
+ size_t n = 1024;
+#else
long m;
size_t n;
errno = 0;
@@ -95,6 +99,7 @@
OSL_ASSERT(m >= 0 && (unsigned long) m < SIZE_MAX);
n = (size_t) m;
}
+#endif
if (n <= SIZE_MAX - offsetof(oslSecurityImpl, m_buffer)) {
*bufSize = n;
n += offsetof(oslSecurityImpl, m_buffer);