[php-maint] Bug#683476: php5-cgi: Broken on armel b/c multiple unaliged memory access issues

shawn shawn at jengr.tk
Wed Aug 1 04:28:25 UTC 2012


Package: php5-cgi
Version: 5.4.4-2
Severity: important
Tags: upstream

Dear Maintainer,

Broken on armel b/c multiple unaliged memory access issues

[4742113.672995] Alignment trap: php5-cgi (1556) PC=0x002b50e8 Instr=0xe5960020 Address=0x01000721 FSR 0x001
[4742348.453392] Alignment trap: php5-cgi (1774) PC=0x002b50e8 Instr=0xe5960020 Address=0x01000721 FSR 0x001
[4747421.332368] Alignment trap: php5-cgi (1846) PC=0x00352238 Instr=0xe5943000 Address=0x01000701 FSR 0x001

#1+#2 Zend/zend_hash.c:926 (zend_hash_find)
ZEND_API int zend_hash_find(const HashTable *ht, const char *arKey, uint nKeyLength, void **pData)
{
        ulong h;
        uint nIndex;
        Bucket *p;

        IS_CONSISTENT(ht);

        h = zend_inline_hash_func(arKey, nKeyLength);
        nIndex = h & ht->nTableMask;

        p = ht->arBuckets[nIndex];
        while (p != NULL) {
                if (p->arKey == arKey || <-----###--------------
                        ((p->h == h) && (p->nKeyLength == nKeyLength) && !memcmp(p->arKey, arKey, nKeyLength))) {
                                *pData = p->pData;
                                return SUCCESS;
                }
                p = p->pNext;
        }
        return FAILURE;
}

#2 

#3 sapi/cgi/fastcgi.c:316 (fcgi_hash_get)
static char *fcgi_hash_get(fcgi_hash *h, unsigned int hash_value, char *var, unsigned int var_len, unsigned int *val_len)
{
        unsigned int      idx = hash_value & FCGI_HASH_TABLE_MASK;
        fcgi_hash_bucket *p = h->hash_table[idx];

        while (p != NULL) {
                if (p->hash_value == hash_value && <----####----
                    p->var_len == var_len &&
                    memcmp(p->var, var, var_len) == 0) {
                    *val_len = p->val_len;
                    return p->val;
                }
                p = p->next;
        }
        return NULL;
}




-- System Information:
Debian Release: wheezy
  APT prefers testing
  APT policy: (990, 'testing')
Architecture: armel (armv5tel)

Kernel: Linux 3.4.0-tomoyo-00006-gfd64aac (PREEMPT)
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)
Shell: /bin/sh linked to /bin/dash

Versions of packages php5-cgi depends on:
ii  libbz2-1.0        1.0.6-3
ii  libc6             2.13-33
ii  libcomerr2        1.42.4-3
ii  libdb5.1          5.1.29-5
ii  libgcc1           1:4.7.1-2
ii  libgssapi-krb5-2  1.10.1+dfsg-1em1
ii  libk5crypto3      1.10.1+dfsg-1em1
ii  libkrb5-3         1.10.1+dfsg-1em1
ii  libmagic1         5.11-2
ii  libonig2          5.9.1-1em1
ii  libpcre3          1:8.30-5em1
ii  libqdbm14         1.8.78-2em1
ii  libssl1.0.0       1.0.1c-3
ii  libxml2           2.8.0+dfsg1-4
ii  mime-support      3.52-1em1
ii  php5-common       5.4.4-2
ii  tzdata            2012c-1em1
ii  ucf               3.0025+nmu3em1
ii  zlib1g            1:1.2.7.dfsg-13

php5-cgi recommends no packages.

Versions of packages php5-cgi suggests:
ii  php-pear  5.4.4-2

-- no debconf information



More information about the pkg-php-maint mailing list