For those who already asked whether we can integrate the Suhosin stuff
of the Hardened-PHP project into our OpenPKG PHP: I'm working on this
but the upstream vendor still has to remove a few remaining obstacles.
The integration is already nasty and complex enough (requires even GNU
autoconf under build-time, etc) and don't want to have another "patch of
a patch" in our "php" and "apache" packages...

----- Forwarded message from "Ralf S. Engelschall" <[EMAIL PROTECTED]> -----
Date: Mon, 13 Nov 2006 09:14:53 +0100
From: "Ralf S. Engelschall" <[EMAIL PROTECTED]>
To: [EMAIL PROTECTED]
Subject: Suhosin 0.9.11 static building fails under PHP 5.2.0 because of 
conflicting rfc1867.h content
Reply-To: [EMAIL PROTECTED]
Organization: Engelschall, Germany.
User-Agent: Mutt/1.5.13 OpenPKG/CURRENT (2006-08-11)

I've today tried to integrate your Suhosin extension into our PHP 5.2.0
based OpenPKG "php" package. Unfortunately the suhosin_rfc1867.h content
conflicts with the standard PHP 5.2.0 rfc1867.h header. There are two
problems:

1. The suhosin_rfc1867.h header uses the same "double-inclusion-prevention"
   #define of "RFC1867_H" as rfc1867.h and this way its "#include" for
   rfc1867.h is always a no-op. As a result the MULTIPART_EVENT_START is
   never #defined and this means HAVE_RFC1867_CALLBACK is defined to 0
   and this in turn means that the php_rfc1867_callback becomes defined
   multiple times which in turn breaks at least the while building under
   static linking.

2. Once the bug (1) is fixed, a new one occurs: not just the
   MULTIPART_EVENT_XXXX, but also the various structure definitions
   are in conflict with rfc1867.h, so they have to be included in the
   #else/#endif clause, too.

With the following patch I was able to build a statically linked
PHP 5.2.0 with both the Suhosin 5.2.0-0.9.6.2 patch and the Suhosin
extension 0.9.11.

                                       Ralf S. Engelschall
                                       [EMAIL PROTECTED]
                                       www.engelschall.com

Index: suhosin_rfc1867.h
--- suhosin_rfc1867.h.orig      2006-09-03 01:20:38 +0200
+++ suhosin_rfc1867.h   2006-11-13 09:08:18 +0100
@@ -18,8 +18,8 @@

 /* $Id: suhosin_rfc1867.h,v 1.5 2006-09-02 23:20:38 sesser Exp $ */

-#ifndef RFC1867_H
-#define RFC1867_H
+#ifndef SUHOSIN_RFC1867_H
+#define SUHOSIN_RFC1867_H

 #include "rfc1867.h"
 #include "SAPI.h"
@@ -37,8 +37,6 @@
 #define MULTIPART_EVENT_FILE_END       4
 #define MULTIPART_EVENT_END            5

-#endif
-
 typedef struct _multipart_event_start {
        size_t  content_length;
 } multipart_event_start;
@@ -75,6 +73,8 @@
        size_t  post_bytes_processed;
 } multipart_event_end;

+#endif
+
 SAPI_POST_HANDLER_FUNC(suhosin_rfc1867_post_handler);

 void destroy_uploaded_files_hash(TSRMLS_D);
@@ -84,4 +84,4 @@
 extern PHPAPI int (*php_rfc1867_callback)(unsigned int event, void 
*event_data, void **extra TSRMLS_DC);
 #endif

-#endif /* RFC1867_H */
+#endif /* SUHOSIN_RFC1867_H */


----- End forwarded message -----

                                       Ralf S. Engelschall
                                       [EMAIL PROTECTED]
                                       www.engelschall.com

______________________________________________________________________
The OpenPKG Project                                    www.openpkg.org
Developer Communication List                   openpkg-dev@openpkg.org

Reply via email to