Bug 104047

Summary: lang/php5-5.1.6_1 patching fails with suhosin enabled
Product: Ports & Packages Reporter: neil
Component: Individual Port(s)Assignee: Alex Dupre <ale>
Status: Closed FIXED    
Severity: Affects Only Me    
Priority: Normal    
Version: Latest   
Hardware: Any   
OS: Any   

Description neil 2006-10-06 11:20:14 UTC
If the suhosin patch is enabled for a build of php5-5.1.6_1 then
patch-Zend_zend_alloc.c fails to apply.

How-To-Repeat: Just enable suhosin in the make config dialog and build.

My php5 config -
# This file is auto-generated by 'make config'.
# No user-servicable parts inside!
# Options for php5-5.1.6_1
_OPTIONS_READ=php5-5.1.6_1
WITH_CLI=true
WITHOUT_CGI=true
WITH_APACHE=true
WITHOUT_DEBUG=true
WITH_SUHOSIN=true
WITHOUT_MULTIBYTE=true
WITH_IPV6=true
WITHOUT_REDIRECT=true
WITHOUT_DISCARD=true
WITHOUT_FASTCGI=true
WITHOUT_PATHINFO=true

The build error message -
===>  Extracting for php5-5.1.6_1
=> MD5 Checksum OK for php-5.1.6.tar.bz2.
=> SHA256 Checksum OK for php-5.1.6.tar.bz2.
=> MD5 Checksum OK for suhosin-patch-5.1.6-0.9.5.patch.gz.
=> SHA256 Checksum OK for suhosin-patch-5.1.6-0.9.5.patch.gz.
===>  Patching for php5-5.1.6_1
===>  Applying distribution patches for php5-5.1.6_1
===>  Applying FreeBSD patches for php5-5.1.6_1
1 out of 1 hunks failed--saving rejects to Zend/zend_alloc.c.rej
=> Patch patch-Zend_zend_alloc.c failed to apply cleanly.
=> Patch(es) patch-TSRM_threads.m4 patch-Zend::zend.h applied cleanly.
*** Error code 1

File zend_alloc.c.rej -
***************
*** 328,342 ****
  ZEND_API void *_ecalloc(size_t nmemb, size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
  {
        void *p;
-       int final_size = size*nmemb;
-
        HANDLE_BLOCK_INTERRUPTIONS();
-       p = _emalloc(final_size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
        if (!p) {
                HANDLE_UNBLOCK_INTERRUPTIONS();
                return (void *) p;
        }
-       memset(p, 0, final_size);
        HANDLE_UNBLOCK_INTERRUPTIONS();
        return p;
  }
--- 328,341 ----
  ZEND_API void *_ecalloc(size_t nmemb, size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
  {
        void *p;
+
        HANDLE_BLOCK_INTERRUPTIONS();
+       p = _safe_emalloc(nmemb, size, 0 ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
        if (!p) {
                HANDLE_UNBLOCK_INTERRUPTIONS();
                return (void *) p;
        }
+       memset(p, 0, size * nmemb);
        HANDLE_UNBLOCK_INTERRUPTIONS();
        return p;
  }
Comment 1 Edwin Groothuis freebsd_committer freebsd_triage 2006-10-06 12:01:37 UTC
Responsible Changed
From-To: freebsd-ports-bugs->ale

Over to maintainer
Comment 2 Alex Dupre freebsd_committer freebsd_triage 2006-10-06 19:16:07 UTC
State Changed
From-To: open->closed

Fixed, thanks!