Author: arekm                        Date: Tue Mar 28 18:24:57 2006 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- new (from debian); updated

---- Files affected:
SOURCES:
   Firebird-fix-os-detection.dpatch (NONE -> 1.1)  (NEW), 
Firebird-fix-pthreads-detect.dpatch (NONE -> 1.1)  (NEW), 
Firebird-link-with-g++.dpatch (NONE -> 1.1)  (NEW), 
Firebird-no-custom-errno-and-sys_XXerrXX.dpatch (NONE -> 1.1)  (NEW), 
Firebird-opt-bypass-redundant-sort.dpatch (NONE -> 1.1)  (NEW), 
Firebird-security-remote-preauth-crash.dpatch (NONE -> 1.1)  (NEW), 
Firebird-separate-file-and-sem-perms.dpatch (NONE -> 1.1)  (NEW), 
Firebird-gcc4.patch (1.3 -> 1.4) 

---- Diffs:

================================================================
Index: SOURCES/Firebird-fix-os-detection.dpatch
diff -u /dev/null SOURCES/Firebird-fix-os-detection.dpatch:1.1
--- /dev/null   Tue Mar 28 20:24:57 2006
+++ SOURCES/Firebird-fix-os-detection.dpatch    Tue Mar 28 20:24:52 2006
@@ -0,0 +1,59 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 006_fix-os-detection.dpatch by  <[EMAIL PROTECTED]>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Fix OS detection in configure and configure.in
+
[EMAIL PROTECTED]@
+
+--- firebird2-1.5.2.orig/src/extern/editline/configure
++++ firebird2-1.5.2/src/extern/editline/configure
+@@ -894,7 +894,7 @@
+   *-*-freebsd*)
+       ABI="elf"
+       ;;
+-  *-*-linux*)
++  *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu)
+       ABI="elf"
+       ;;
+   *-*-netbsd*)
+--- firebird2-1.5.2.orig/src/extern/editline/configure.in
++++ firebird2-1.5.2/src/extern/editline/configure.in
+@@ -32,7 +32,7 @@
+   *-*-freebsd*)
+       ABI="elf"
+       ;;
+-  *-*-linux*)
++  *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu)
+       ABI="elf"
+       ;;
+   *-*-netbsd*)
+--- firebird2-1.5.2.orig/configure.in
++++ firebird2-1.5.2/configure.in
+@@ -58,7 +58,7 @@
+     SHRLIB_EXT=so
+     ;;
+ 
+-  x86_64*-*-linux*)
++  x86_64*-*-linux* | x86_64*-*-gnu* | x86_64*-*-k*bsd*-gnu)
+     MAKEFILE_PREFIX=linux_amd64
+     INSTALL_PREFIX=linux
+     PLATFORM=LINUX
+@@ -70,7 +70,7 @@
+     CPU_TYPE=amd64
+     ;;
+ 
+-  sparc*-*-linux*)
++  sparc*-*-linux* | sparc*-*-gnu* | sparc*-*-k*bsd*-gnu)
+     MAKEFILE_PREFIX=linux_sparc32
+     INSTALL_PREFIX=linux
+     PLATFORM=LINUX
+@@ -80,7 +80,7 @@
+     SHRLIB_EXT=so
+     ;;
+ 
+-  *-*-linux*)
++  *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu)
+     MAKEFILE_PREFIX=linux
+     PLATFORM=LINUX
+     AC_DEFINE(LINUX)

================================================================
Index: SOURCES/Firebird-fix-pthreads-detect.dpatch
diff -u /dev/null SOURCES/Firebird-fix-pthreads-detect.dpatch:1.1
--- /dev/null   Tue Mar 28 20:24:57 2006
+++ SOURCES/Firebird-fix-pthreads-detect.dpatch Tue Mar 28 20:24:52 2006
@@ -0,0 +1,58 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 005_fix-pthreads-detect.dpatch by  <[EMAIL PROTECTED]>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Fix pthreads detection
+
[EMAIL PROTECTED]@
+
+--- firebird2-1.5.2.orig/src/common/classes/locks.h
++++ firebird2-1.5.2/src/common/classes/locks.h
+@@ -29,24 +29,22 @@
+ #include "firebird.h"
+ 
+ #ifdef MULTI_THREAD
+-#ifdef WIN_NT
++#if defined(WIN_NT)
+ // It is relatively easy to avoid using this header. Maybe do the same stuff 
like
+ // in thd.h ? This is Windows platform maintainers choice
+ #include <windows.h>
+-#else
+-#ifndef SOLARIS
+-#include <pthread.h>
+-#else
++#elif defined(SOLARIS)
+ #include <thread.h>
+ #include <synch.h>
+-#endif
++#else
++#include <pthread.h>
+ #endif
+ #endif /* MULTI_THREAD */
+ 
+ namespace Firebird {
+ 
+ #ifdef MULTI_THREAD
+-#ifdef WIN_NT
++#if defined(WIN_NT)
+ 
+ /* Process-local spinlock. Used to manage memory heaps in threaded 
environment. */
+ // Windows version of the class
+@@ -77,7 +75,7 @@
+ 
+ /* Process-local spinlock. Used to manage memory heaps in threaded 
environment. */
+ // Pthreads version of the class
+-#if !defined(SOLARIS) && !defined(DARWIN) && !defined(FREEBSD)
++#if !defined(SOLARIS) && !defined(DARWIN) && !defined(FREEBSD) && 
!defined(_POSIX_THREAD_IS_GNU_PTH)
+ class Spinlock {
+ private:
+       pthread_spinlock_t spinlock;
+@@ -124,7 +122,7 @@
+                       system_call_failed::raise();
+       }
+ };
+-#else  // DARWIN and FREEBSD
++#else  // DARWIN, FREEBSD and gnu pth
+ class Spinlock {
+ private:
+       pthread_mutex_t mlock;

================================================================
Index: SOURCES/Firebird-link-with-g++.dpatch
diff -u /dev/null SOURCES/Firebird-link-with-g++.dpatch:1.1
--- /dev/null   Tue Mar 28 20:24:57 2006
+++ SOURCES/Firebird-link-with-g++.dpatch       Tue Mar 28 20:24:52 2006
@@ -0,0 +1,32 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 008_link-with-g++.dpatch by  <[EMAIL PROTECTED]>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: use g++ to link objects
+
[EMAIL PROTECTED]@
+
+--- firebird2-1.5.2.orig/builds/posix/make.rules
++++ firebird2-1.5.2/builds/posix/make.rules
+@@ -91,16 +91,16 @@
+ ifdef UseLibToolForLink
+ 
+ 
+-    LIB_LINK= libtool $(CC(
+-    STATICLIB_LINK = libtool $(CC) -all-static
++    LIB_LINK= libtool $(CXX)
++    STATICLIB_LINK = libtool $(CXX) -all-static
+ #    LIB_LINK_OPTIONS = -version-info 0:0:0 -release 1.5.0.0 -rpath /usr/lib
+     LIB_LINK_OPTIONS += -version-info 0:0:0 -release 1.5.0.0 
$(LIB_LINK_RPATH)$(FirebirdInstallPrefix)/lib
+ 
+-    EXE_LINK = libtool $(CC)
+-    STATICEXE_LINK = libtool $(CC) -all-static
++    EXE_LINK = libtool $(CXX)
++    STATICEXE_LINK = libtool $(CXX) -all-static
+ else
+ 
+-    LIB_LINK= $(CC)
++    LIB_LINK= $(CXX)
+     STATICLIB_LINK= ar cruvs
+ #    LIB_LINK_OPTIONS = -soname libgds.$(SHRLIB_EXT) -rpath /usr/lib
+ #    LIB_LINK_OPTIONS = -soname libgds.$(SHRLIB_EXT).2 -rpath /usr/lib

================================================================
Index: SOURCES/Firebird-no-custom-errno-and-sys_XXerrXX.dpatch
diff -u /dev/null SOURCES/Firebird-no-custom-errno-and-sys_XXerrXX.dpatch:1.1
--- /dev/null   Tue Mar 28 20:24:57 2006
+++ SOURCES/Firebird-no-custom-errno-and-sys_XXerrXX.dpatch     Tue Mar 28 
20:24:52 2006
@@ -0,0 +1,201 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 003_no-custom-errno-and-sys_XXerrXX.dpatch by  <[EMAIL PROTECTED]>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Remove declarations of errno, syserrlist, sysnerr
+
[EMAIL PROTECTED]@
+
+--- firebird2-1.5.2.orig/src/jrd/gds.cpp
++++ firebird2-1.5.2/src/jrd/gds.cpp
+@@ -182,12 +182,6 @@
+ 
+ extern "C" {
+ 
+-#if !(defined VMS || defined WIN_NT || defined LINUX || defined FREEBSD || 
defined NETBSD || defined DARWIN )
+-extern int errno;
+-extern SCHAR *sys_errlist[];
+-extern int sys_nerr;
+-#endif
+-
+ #ifndef PRINTF
+ #define PRINTF                        ib_printf
+ #endif
+@@ -334,8 +328,6 @@
+ #define ib_printf     (*_libgds_printf)
+ #define ib_fopen      (*_libgds_fopen)
+ #define ib_fclose     (*_libgds_fclose)
+-#define sys_nerr      (*_libgds_sys_nerr)
+-#define sys_errlist   (*_libgds_sys_errlist)
+ #define malloc                (*_libgds_malloc)
+ #define gettimeofday(*_libgds_gettimeofday)
+ #define ctime         (*_libgds_ctime)
+@@ -368,8 +360,6 @@
+ extern int ib_printf();
+ extern IB_FILE *ib_fopen();
+ extern int ib_fclose();
+-extern int sys_nerr;
+-extern SCHAR *sys_errlist[];
+ extern void *malloc();
+ extern int gettimeofday();
+ extern SCHAR *ctime();
+@@ -956,14 +946,7 @@
+               break;
+ 
+       case gds_arg_unix:
+-              if (code > 0 && code < sys_nerr && (p = 
(TEXT*)sys_errlist[code]))
+-                      strcpy(s, p);
+-              else if (code == 60)
+-                      strcpy(s, "connection timed out");
+-              else if (code == 61)
+-                      strcpy(s, "connection refused");
+-              else
+-                      sprintf(s, "unknown unix error %ld", code);     /* TXNN 
*/
++              sprintf(s, "%s", strerror (code));
+               break;
+ 
+       case gds_arg_dos:
+--- firebird2-1.5.2.orig/src/jrd/shrinit.cpp
++++ firebird2-1.5.2/src/jrd/shrinit.cpp
+@@ -70,8 +70,6 @@
+ void (*_libgds_rewind) () = 0;
+ int (*_libgds_fseek) () = 0;
+ int (*_libgds__flsbuf) () = 0;
+-SCHAR(**_libgds_sys_errlist) = 0;
+-int *_libgds_sys_nerr = 0;
+ void *(*_libgds_malloc) () = 0;
+ int (*_libgds_gettimeofday) () = 0;
+ SCHAR *(*_libgds_ctime) () = 0;
+--- firebird2-1.5.2.orig/src/extern/editline/sys.h
++++ firebird2-1.5.2/src/extern/editline/sys.h
+@@ -124,11 +124,8 @@
+ extern int    fflush(FILE *);
+ extern int    tolower(int);
+ extern int    toupper(int);
+-extern int    errno, sys_nerr;
+-extern char   *sys_errlist[];
+ extern void   perror(const char *);
+ #  include <string.h>
+-#  define strerror(e) sys_errlist[e]
+ # endif
+ # ifdef SABER
+ extern ptr_t    memcpy(ptr_t, const ptr_t, size_t);
+--- firebird2-1.5.2.orig/src/utilities/rebuild.cpp
++++ firebird2-1.5.2/src/utilities/rebuild.cpp
+@@ -56,8 +56,6 @@
+ 
+ IB_FILE *dbg_file;
+ 
+-extern SCHAR *sys_errlist[];
+-
+ static void checksum(RBDB, ULONG, ULONG, UCHAR);
+ static USHORT compute_checksum(RBDB, PAG);
+ static void db_error(int);
+@@ -536,7 +534,7 @@
+  *
+  **************************************/
+ 
+-      ib_printf(sys_errlist[status]);
++      ib_printf(strerror (status));
+       exit(FINI_ERROR);
+ }
+ 
+--- firebird2-1.5.2.orig/src/utilities/analyse.cpp
++++ firebird2-1.5.2/src/utilities/analyse.cpp
+@@ -47,8 +47,6 @@
+ #include "jrd.h"
+ #include "ods.h"
+ 
+-extern SCHAR *sys_errlist[];
+-
+ static void analyse(int, SCHAR *, PAG, int);
+ static SLONG get_long(void);
+ static void db_error(int);
+@@ -290,7 +288,7 @@
+  *
+  **************************************/
+ 
+-      ib_printf(sys_errlist[status]);
++      ib_printf(strerror (status));
+       abort();
+ }
+ 
+--- firebird2-1.5.2.orig/src/utilities/dba_full.epp
++++ firebird2-1.5.2/src/utilities/dba_full.epp
+@@ -63,8 +63,6 @@
+ 
+ #if (defined WIN_NT)
+ #include <stdlib.h>
+-#else
+-extern SCHAR *sys_errlist[];
+ #endif
+ 
+ typedef struct dba_rel {
+@@ -1122,7 +1120,7 @@
+       tddba = GET_THREAD_DATA;
+ 
+ #ifndef VMS
+-      FPRINTF(tddba->sw_outfile, "%s\n", sys_errlist[status]);
++      FPRINTF(tddba->sw_outfile, "%s\n", strerror (status));
+ #else
+       if ((p = strerror(status)) || (p = strerror(EVMSERR, status)))
+               FPRINTF(tddba->sw_outfile, "%s\n", p);
+--- firebird2-1.5.2.orig/src/utilities/sbc_print.cpp
++++ firebird2-1.5.2/src/utilities/sbc_print.cpp
+@@ -69,10 +69,6 @@
+ 
+ #define DEFAULT_SIZE  8192
+ 
+-#if !(defined WIN_NT)
+-extern SCHAR *sys_errlist[];
+-#endif
+-
+ static void cache_init(void);
+ static void db_get_sbc(SCHAR *, SCHAR *, SLONG *, SSHORT *);
+ 
+@@ -490,7 +486,7 @@
+       SCHAR *p;
+ 
+ #ifndef VMS
+-      ib_printf(sys_errlist[status]);
++      ib_printf(strerror (status));
+ #else
+       if ((p = strerror(status)) || (p = strerror(EVMSERR, status)))
+               ib_printf("%s\n", p);
+--- firebird2-1.5.2.orig/src/utilities/dba.epp
++++ firebird2-1.5.2/src/utilities/dba.epp
+@@ -1520,7 +1520,7 @@
+       tddba->page_number = -1;
+ 
+ #ifndef VMS
+-      FPRINTF(tddba->sw_outfile, "%s\n", sys_errlist[status]);
++      FPRINTF(tddba->sw_outfile, "%s\n", strerror (status));
+ #else
+       if ((p = strerror(status)) || (p = strerror(EVMSERR, status)))
+               FPRINTF(tddba->sw_outfile, "%s\n", p);
+--- firebird2-1.5.2.orig/src/lock/lock.cpp
++++ firebird2-1.5.2/src/lock/lock.cpp
+@@ -338,14 +338,12 @@
+ 
+ 
+ #ifdef SHLIB_DEFS
+-#define sys_errlist   (*_libgds_sys_errlist)
+ #define waitpid               (*_libgds_waitpid)
+ #define execl         (*_libgds_execl)
+ #define _exit         (*_libgds__exit)
+ #define statistics    (*_libgds_stat)
+ #define chmod         (*_libgds_chmod)
+ 
+-extern SCHAR *sys_errlist[];
+ extern int waitpid();
+ extern int execl();
+ extern void _exit();
+@@ -2067,7 +2065,7 @@
+ 
+ #if !(defined WIN_NT)
+       if (errno > 0)
+-              ib_fprintf(ib_stderr, "--%s\n", sys_errlist[errno]);
++              ib_fprintf(ib_stderr, "--%s\n", strerror (errno));
+ #endif
+ 
+ #ifdef DEV_BUILD

================================================================
Index: SOURCES/Firebird-opt-bypass-redundant-sort.dpatch
diff -u /dev/null SOURCES/Firebird-opt-bypass-redundant-sort.dpatch:1.1
--- /dev/null   Tue Mar 28 20:24:57 2006
+++ SOURCES/Firebird-opt-bypass-redundant-sort.dpatch   Tue Mar 28 20:24:52 2006
@@ -0,0 +1,103 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 009_opt-bypass-redundant-sort.dpatch by  <[EMAIL PROTECTED]>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: RP: optimize sort with OUTER JOIN if all the fields in the sort list 
+## DP: are from one stream, check the stream is the most outer stream, if true 
+## DP: update rse and ignore the sort
+
[EMAIL PROTECTED]@
+
+--- firebird2-1.5.2.orig/src/jrd/opt.cpp
++++ firebird2-1.5.2/src/jrd/opt.cpp
+@@ -1518,7 +1518,89 @@
+                       set_position(sort, project, NULL);
+                       sort = rse->rse_sorted = NULL;
+               }
+-      }
++      }
++
++      // RP: optimize sort with OUTER JOIN
++      // if all the fields in the sort list are from one stream, check the 
stream is
++      // the most outer stream, if true update rse and ignore the sort
++      if (sort) {
++              UCHAR sort_stream = 0;
++              bool usableSort = true;
++              sort_ptr = sort->nod_arg;
++              sort_end = sort_ptr + sort->nod_count;
++              for (; sort_ptr < sort_end; sort_ptr++) {
++                      if ((*sort_ptr)->nod_type == nod_field) { 
++                              // Get stream for this field at this position.
++                              const UCHAR current_stream = 
(UCHAR)(IPTR)(*sort_ptr)->nod_arg[e_fld_stream];
++                              // If this is the first position node, save 
this stream.
++                              if (sort_ptr == sort->nod_arg) {
++                              sort_stream = current_stream;
++                              }
++                              else if (current_stream != sort_stream) {
++                                      // If the current stream is different 
then the previous stream
++                                      // then we can't use this sort for an 
indexed order retrieval.                                  
++                                      usableSort = false;
++                                      break;
++                              }
++                      }
++                      else {
++                              // This position doesn't use a simple field, 
thus we can't use
++                              // any index for the sort.
++                              usableSort = false;
++                              break;
++                      }
++              }
++
++              if (usableSort) {
++                      RSE new_rse = NULL;
++                      JRD_NOD node = (JRD_NOD) rse;
++                      while (node) {
++                              if (node->nod_type == nod_rse) {
++                                      new_rse = (RSE) node;
++                                      if (new_rse->rse_jointype == blr_inner) 
{
++                                              if (new_rse->rse_count == 1) {
++                                                      node = 
new_rse->rse_relation[0];
++                                              }
++                                              else {
++                                                      bool sortStreamFound = 
false;
++                                                      for (int i = 0; i < 
new_rse->rse_count; i++) {
++                                                              JRD_NOD subNode 
= (JRD_NOD) new_rse->rse_relation[i];
++                                                              if 
(subNode->nod_type == nod_relation && 
++                                                                      
((USHORT)(IPTR)subNode->nod_arg[e_rel_stream]) == sort_stream && 
++                                                                      new_rse 
!= rse) 
++                                                              {
++                                                                      
sortStreamFound = true;
++                                                                      break;
++                                                              }
++
++                                                      }
++                                                      if (sortStreamFound) {
++                                                              
new_rse->rse_sorted = sort;
++                                                              sort = 
rse->rse_sorted = NULL;
++                                                      }
++                                                      node = NULL;
++                                              }
++                                      }
++                                      else if (new_rse->rse_jointype == 
blr_left) {
++                                              node = new_rse->rse_relation[0];
++                                      }
++                                      else {
++                                              node = NULL;
++                                      }
++                              }
++                              else {
++                                      if (node->nod_type == nod_relation && 
++                                              
((USHORT)(IPTR)node->nod_arg[e_rel_stream]) == sort_stream && 
++                                              new_rse && new_rse != rse) 
++                                      {
++                                              new_rse->rse_sorted = sort;
++                                              sort = rse->rse_sorted = NULL;
++                                      }
++                                      node = NULL;
++                              }
++                      }
++              }
++      }
+ }
+ 
+ 

================================================================
Index: SOURCES/Firebird-security-remote-preauth-crash.dpatch
diff -u /dev/null SOURCES/Firebird-security-remote-preauth-crash.dpatch:1.1
--- /dev/null   Tue Mar 28 20:24:57 2006
+++ SOURCES/Firebird-security-remote-preauth-crash.dpatch       Tue Mar 28 
20:24:52 2006
@@ -0,0 +1,28 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## security-remote-preauth-crash.dpatch by  <[EMAIL PROTECTED]>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: No description.
+
[EMAIL PROTECTED]@
+diff -urNad firebird2-1.5.3.4870~/src/jrd/unix.cpp 
firebird2-1.5.3.4870/src/jrd/unix.cpp
+--- firebird2-1.5.3.4870~/src/jrd/unix.cpp     2004-03-29 06:50:11.000000000 
+0300
++++ firebird2-1.5.3.4870/src/jrd/unix.cpp      2006-03-20 11:46:53.000000000 
+0200
+@@ -643,6 +643,8 @@
+       if (string) {
+               ptr = string;
+               if (length) {
++                        if (length >= sizeof(temp)) length = sizeof(temp) - 1;
++
+                       MOVE_FAST(string, temp, length);
+                       temp[length] = 0;
+                       ptr = temp;
+@@ -651,6 +653,8 @@
+       else {
+               ptr = file_name;
+               if (file_length) {
++                        if (file_length >= sizeof(temp)) file_length = 
sizeof(temp) - 1;
++
+                       MOVE_FAST(file_name, temp, file_length);
+                       temp[file_length] = 0;
+                       ptr = temp;

================================================================
Index: SOURCES/Firebird-separate-file-and-sem-perms.dpatch
diff -u /dev/null SOURCES/Firebird-separate-file-and-sem-perms.dpatch:1.1
--- /dev/null   Tue Mar 28 20:24:58 2006
+++ SOURCES/Firebird-separate-file-and-sem-perms.dpatch Tue Mar 28 20:24:52 2006
@@ -0,0 +1,124 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 004_separate_file_and_sem_perms.dpatch by  <[EMAIL PROTECTED]>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Separate definitions for file and semaphore permissions
+
[EMAIL PROTECTED]@
+
+--- firebird2-1.5.2.orig/src/jrd/isc_sync.cpp
++++ firebird2-1.5.2/src/jrd/isc_sync.cpp
+@@ -136,8 +136,20 @@
+ #endif
+ 
+ #define FTOK_KEY      15
+-#define PRIV          0666
+ #define LOCAL_SEMAPHORES 4
++#define FILE_PERM     0666
++#if defined(SEM_R) && defined(SEM_A)
++#define SEM_PERM      SEM_R | SEM_A | (SEM_R>>3) | (SEM_A>>3) \
++                      | (SEM_R>>6) | (SEM_A>>6)
++#else
++#define SEM_PERM      FILE_PERM
++#endif
++#if defined(SHM_R) && defined(SHM_W)
++#define SHM_PERM      SHM_R | SHM_W | (SHM_R>>3) | (SHM_W>>3) \
++                      | (SHM_R>>6) | (SHM_W>>6)
++#else
++#define SHM_PERM      FILE_PERM
++#endif
+ 
+ #ifndef GDS_RELAY
+ #define GDS_RELAY     "/bin/gds_relay"
+@@ -2381,7 +2393,7 @@
+ 
+ /* Create the shared memory region if it doesn't already exist. */
+ 
+-      if ((shmid = shmget(key, length, IPC_CREAT | PRIV)) == -1)
++      if ((shmid = shmget(key, length, IPC_CREAT | SHM_PERM)) == -1)
+ #ifdef SUPERSERVER
+               if (errno == EINVAL) {
+                       /* There are two cases when shmget() returns EINVAL 
error:
+@@ -2428,7 +2440,7 @@
+                          way to get shmid is to attach to the segment with 
zero
+                          length
+                        */
+-                      if ((shmid = shmget(key, 0, PRIV)) == -1) {
++                      if ((shmid = shmget(key, 0, SHM_PERM)) == -1) {
+                               error(status_vector, "shmget", errno);
+                               ib_fclose(fp);
+                               return NULL;
+@@ -2446,7 +2458,7 @@
+                          we use IPC_EXCL flag to get an error if by some 
miracle
+                          the sagment with the same key is already exists
+                        */
+-                      if ((shmid = shmget(key, length, IPC_CREAT | IPC_EXCL | 
PRIV)) ==
++                      if ((shmid = shmget(key, length, IPC_CREAT | IPC_EXCL | 
SHM_PERM)) ==
+                               -1) {
+                               error(status_vector, "shmget", errno);
+                               ib_fclose(fp);
+@@ -2491,7 +2503,7 @@
+                               return NULL;
+                       }
+ 
+-                      if ((shmid = shmget(key, length, IPC_CREAT | IPC_EXCL | 
PRIV)) ==
++                      if ((shmid = shmget(key, length, IPC_CREAT | IPC_EXCL | 
SHM_PERM)) ==
+                               -1) {
+                               error(status_vector, "shmget", errno);
+                               ib_fclose(fp);
+@@ -2500,7 +2512,7 @@
+               }
+               else {
+                       length = buf.shm_segsz;
+-                      if ((shmid = shmget(key, length, PRIV)) == -1) {
++                      if ((shmid = shmget(key, length, SHM_PERM)) == -1) {
<<Diff was trimmed, longer than 597 lines>>

---- CVS-web:
    http://cvs.pld-linux.org/SOURCES/Firebird-gcc4.patch?r1=1.3&r2=1.4&f=u

_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to