Your message dated Sat, 07 Jun 2008 17:47:04 +0000
with message-id <[EMAIL PROTECTED]>
and subject line Bug#484138: fixed in icu 3.8.1-2
has caused the Debian Bug report #484138,
regarding libicu38: One simple program segfault on ARM
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [EMAIL PROTECTED]
immediately.)


-- 
484138: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=484138
Debian Bug Tracking System
Contact [EMAIL PROTECTED] with problems
--- Begin Message ---
Package: libicu38
Version: 3.8.1-1
Severity: important

  Hi,

  I'm tracking #483649 that block a transition to testing with a
soname change. #483649 is about libyaz that does not compile on arm
(all other architectures are ok). Looking at the build log, I saw that,
in fact, only one test fails in the yaz "make check" (the tst_icu_I18N
test and not the tst_oid test as I errorneously said previously in the
other bug report).
  Following the code, I saw that the SEGV comes from the libicui28n
library.

  I tried a reduced test case in the attached file.
You can try to compile and run this file with :
gcc -Wall toto.c -licui18n -g -o toto
./toto

On arm (agnesi.debian.org, sid chroot), I got :
(sid)[EMAIL PROTECTED]:~$ gcc -Wall toto.c -licui18n -g -o toto
(sid)[EMAIL PROTECTED]:~$ ./toto 
Segmentation fault

On my laptop (sid i386), no problem :
[EMAIL PROTECTED]:/tmp/test$ gcc -Wall toto.c -licui18n -g -o toto
[EMAIL PROTECTED]:/tmp/test$ ./toto
[EMAIL PROTECTED]:/tmp/test$ 


  Can you look at this bug as soon as possible, so that the transition
can occur ?

  Best regards,
    Vincent


-- System Information:
Debian Release: lenny/sid
  APT prefers unstable
  APT policy: (990, 'unstable'), (500, 'testing'), (500, 'stable'), (1, 
'experimental')
Architecture: i386 (i686)

Kernel: Linux 2.6.25-2-686 (SMP w/1 CPU core)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages libicu38 depends on:
ii  libc6                         2.7-11     GNU C Library: Shared libraries
ii  libgcc1                       1:4.3.0-5  GCC support library
ii  libstdc++6                    4.3.0-5    The GNU Standard C++ Library v3

libicu38 recommends no packages.

-- no debconf information
#include <string.h>
#include <stdlib.h>
#include <unicode/utrans.h>
#include <unicode/ustring.h>

#define xmalloc(s) malloc(s)
#define xrealloc(s, t) realloc(s, t)
#define xfree(s) free(s)

struct icu_buf_utf16
{
    UChar * utf16;
    int32_t utf16_len;
    int32_t utf16_cap;
};

struct icu_normalizer
{
    char action;
    struct icu_buf_utf16 * rules16;
    UParseError parse_error[256];
    UTransliterator * trans;
};

struct icu_buf_utf16 * icu_buf_utf16_clear(struct icu_buf_utf16 * buf16)
{
    if (buf16){
        if (buf16->utf16)
            buf16->utf16[0] = (UChar) 0;
        buf16->utf16_len = 0;
    }
    return buf16;
}

struct icu_buf_utf16 * icu_buf_utf16_resize(struct icu_buf_utf16 * buf16,
                                            size_t capacity)
{
    if (!buf16)
        return 0;

    if (capacity >  0){
        if (0 == buf16->utf16)
            buf16->utf16 = (UChar *) xmalloc(sizeof(UChar) * capacity);
        else
            buf16->utf16
                = (UChar *) xrealloc(buf16->utf16, sizeof(UChar) * capacity);

        icu_buf_utf16_clear(buf16);
        buf16->utf16_cap = capacity;
    }
    else {
        xfree(buf16->utf16);
        buf16->utf16 = 0;
        buf16->utf16_len = 0;
        buf16->utf16_cap = 0;
    }

    return buf16;
}



struct icu_buf_utf16 * icu_buf_utf16_create(size_t capacity)
{
    struct icu_buf_utf16 * buf16
        = (struct icu_buf_utf16 *) xmalloc(sizeof(struct icu_buf_utf16));

    buf16->utf16 = 0;
    buf16->utf16_len = 0;
    buf16->utf16_cap = 0;

    if (capacity > 0){
        buf16->utf16 = (UChar *) xmalloc(sizeof(UChar) * capacity);
        buf16->utf16[0] = (UChar) 0;
        buf16->utf16_cap = capacity;
    }
    return buf16;
}

UErrorCode icu_utf16_from_utf8_cstr(struct icu_buf_utf16 * dest16,
                                    const char * src8cstr,
                                    UErrorCode * status)
{
    size_t src8cstr_len = 0;
    int32_t utf16_len = 0;

    *status = U_ZERO_ERROR;
    src8cstr_len = strlen(src8cstr);

    u_strFromUTF8(dest16->utf16, dest16->utf16_cap,
                  &utf16_len,
                  src8cstr, src8cstr_len, status);

    /* check for buffer overflow, resize and retry */
    if (*status == U_BUFFER_OVERFLOW_ERROR)
    {
        icu_buf_utf16_resize(dest16, utf16_len * 2);
        *status = U_ZERO_ERROR;
        u_strFromUTF8(dest16->utf16, dest16->utf16_cap,
                      &utf16_len,
                      src8cstr, src8cstr_len, status);
    }

    if (U_SUCCESS(*status)
        && utf16_len <= dest16->utf16_cap)
        dest16->utf16_len = utf16_len;
    else
        icu_buf_utf16_clear(dest16);

    return *status;
}


int main() {

	struct icu_normalizer * normalizer
	    = (struct icu_normalizer *) xmalloc(sizeof(struct icu_normalizer));
	char rules[]="[:Punctuation:] Any-Remove";
	UErrorCode status=U_ZERO_ERROR;
	normalizer->action = 'f';
	normalizer->trans = 0;
	normalizer->rules16 =  icu_buf_utf16_create(0);
	icu_utf16_from_utf8_cstr(normalizer->rules16, rules, &status);

	normalizer->trans=utrans_openU(normalizer->rules16->utf16,
	                           normalizer->rules16->utf16_len,
				   UTRANS_FORWARD,
				   0, 0,
				   normalizer->parse_error, &status);
	return 0;

}

--- End Message ---
--- Begin Message ---
Source: icu
Source-Version: 3.8.1-2

We believe that the bug you reported is fixed in the latest version of
icu, which is due to be installed in the Debian FTP archive:

icu-doc_3.8.1-2_all.deb
  to pool/main/i/icu/icu-doc_3.8.1-2_all.deb
icu_3.8.1-2.diff.gz
  to pool/main/i/icu/icu_3.8.1-2.diff.gz
icu_3.8.1-2.dsc
  to pool/main/i/icu/icu_3.8.1-2.dsc
libicu-dev_3.8.1-2_i386.deb
  to pool/main/i/icu/libicu-dev_3.8.1-2_i386.deb
libicu38-dbg_3.8.1-2_i386.deb
  to pool/main/i/icu/libicu38-dbg_3.8.1-2_i386.deb
libicu38_3.8.1-2_i386.deb
  to pool/main/i/icu/libicu38_3.8.1-2_i386.deb



A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [EMAIL PROTECTED],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Jay Berkenbilt <[EMAIL PROTECTED]> (supplier of updated icu package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [EMAIL PROTECTED])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Format: 1.8
Date: Sat, 07 Jun 2008 13:09:07 -0400
Source: icu
Binary: libicu38 libicu38-dbg libicu-dev lib32icu38 lib32icu-dev icu-doc
Architecture: source all i386
Version: 3.8.1-2
Distribution: unstable
Urgency: low
Maintainer: Jay Berkenbilt <[EMAIL PROTECTED]>
Changed-By: Jay Berkenbilt <[EMAIL PROTECTED]>
Description: 
 icu-doc    - API documentation for ICU classes and functions
 lib32icu-dev - Development files for International Components for Unicode 
(32-bi
 lib32icu38 - International Components for Unicode (32-bit)
 libicu-dev - Development files for International Components for Unicode
 libicu38   - International Components for Unicode
 libicu38-dbg - International Components for Unicode
Closes: 483563 484138
Changes: 
 icu (3.8.1-2) unstable; urgency=low
 .
   * Patch from Harshula to fix split conjuncts problem in
     Sinhala. (Closes: #483563)
   * Force structures to be padded at byte boundaries (rather than 32-bit
     boundaries) on arm. (Closes: #484138)
   * Update doc-base section.
Checksums-Sha1: 
 1e45db63eaa3915fe56a80f22e5027866bd09a4a 1261 icu_3.8.1-2.dsc
 16fc4f7abba811dc1e09f25329b6a257e874ecd6 15268 icu_3.8.1-2.diff.gz
 b8f3045d2fe8ff558815d3712ef6a82a93c6e040 3655610 icu-doc_3.8.1-2_all.deb
 bc93f0b737d62169204164f9c42db962f2810506 5916954 libicu38_3.8.1-2_i386.deb
 258d901f6002e1774a5b298bb5c87beb6a2c9523 2276656 libicu38-dbg_3.8.1-2_i386.deb
 9d5a54a9255bb2a53f842fa03d81555f6e9869c3 6975488 libicu-dev_3.8.1-2_i386.deb
Checksums-Sha256: 
 e8433874e55b880dbd59e089ae0aba70a56279ef5eab581ab5aa1e890a684e05 1261 
icu_3.8.1-2.dsc
 461aacb9bcbf1bbb7ca5e42beefb57e7a588b253f51d5d1ea5e3a505e3c8a6f6 15268 
icu_3.8.1-2.diff.gz
 16fcb1feb926193a1ee5a40a2706e3c14e6d2e2f16961a8836d16ddbff0c7685 3655610 
icu-doc_3.8.1-2_all.deb
 923f8cb884f1d47d291810476c566f9198fc5184b8c1a4689a1f8b0ce52040a0 5916954 
libicu38_3.8.1-2_i386.deb
 49797799f9ad256b6646e4e3f1108cdb21b70b08ab4be286dea015b3ada8a34b 2276656 
libicu38-dbg_3.8.1-2_i386.deb
 9a268160699648d4e862f630ff60c858d4cc60e532008981a986dc6d820acb31 6975488 
libicu-dev_3.8.1-2_i386.deb
Files: 
 2fa1cbf613feb96d52bf301b4f5f41fd 1261 libs optional icu_3.8.1-2.dsc
 abc3564d9764b62ecf6f08feed0ee26f 15268 libs optional icu_3.8.1-2.diff.gz
 a05887a7a6517e3509dcf2e056033d6d 3655610 doc optional icu-doc_3.8.1-2_all.deb
 c1518e9692166daca0f32e9f6b4ea6ca 5916954 libs optional 
libicu38_3.8.1-2_i386.deb
 04f704d236a20d01bfc881ff81a5ed4f 2276656 libs extra 
libicu38-dbg_3.8.1-2_i386.deb
 5fa1f715dc430e9fe0e7a635bd39543f 6975488 libdevel optional 
libicu-dev_3.8.1-2_i386.deb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)

iD8DBQFISsWdEBVk6taI4KcRAqcMAKDW3xbOFRIvKkTOeiTxbR0gtTNQYACg4iIX
6QMheZv4OJ58loYwbtnwrTw=
=eWHz
-----END PGP SIGNATURE-----



--- End Message ---

Reply via email to