[49174f3] | 1 | Submitted By: Joe Ciccone <jciccone@gmail.com>
|
---|
| 2 | Date: 2006-06-19
|
---|
| 3 | Initial Package Version: 2.4
|
---|
| 4 | Upstream Status: In CVS
|
---|
| 5 | Origin: https://bugzilla.samba.org/show_bug.cgi?id=3678
|
---|
| 6 | Description: Fixes a problem that showed up in samba. It would fail to
|
---|
| 7 | start with the following error.
|
---|
| 8 |
|
---|
| 9 | smbd: gconv_db.c:232: __gconv_release_step: Assertion `step->__end_fct ==
|
---|
| 10 | ((void *)0)' failed.
|
---|
| 11 |
|
---|
| 12 | diff -Naur glibc-2.4.orig/iconv/gconv_db.c glibc-2.4/iconv/gconv_db.c
|
---|
| 13 | --- glibc-2.4.orig/iconv/gconv_db.c 2005-12-19 02:25:25.000000000 -0500
|
---|
| 14 | +++ glibc-2.4/iconv/gconv_db.c 2006-06-19 11:42:00.000000000 -0400
|
---|
| 15 | @@ -1,5 +1,5 @@
|
---|
| 16 | /* Provide access to the collection of available transformation modules.
|
---|
| 17 | - Copyright (C) 1997-2003, 2004, 2005 Free Software Foundation, Inc.
|
---|
| 18 | + Copyright (C) 1997-2003, 2004, 2005, 2006 Free Software Foundation, Inc.
|
---|
| 19 | This file is part of the GNU C Library.
|
---|
| 20 | Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
---|
| 21 |
|
---|
| 22 | @@ -227,7 +227,7 @@
|
---|
| 23 | step->__shlib_handle = NULL;
|
---|
| 24 | #endif
|
---|
| 25 | }
|
---|
| 26 | - else
|
---|
| 27 | + else if (step->__shlib_handle == NULL)
|
---|
| 28 | /* Builtin modules should not have end functions. */
|
---|
| 29 | assert (step->__end_fct == NULL);
|
---|
| 30 | }
|
---|
| 31 | diff -Naur glibc-2.4.orig/iconvdata/Makefile glibc-2.4/iconvdata/Makefile
|
---|
| 32 | --- glibc-2.4.orig/iconvdata/Makefile 2005-11-16 03:15:54.000000000 -0500
|
---|
| 33 | +++ glibc-2.4/iconvdata/Makefile 2006-06-19 11:38:42.000000000 -0400
|
---|
| 34 | @@ -65,7 +65,8 @@
|
---|
| 35 | include ../Makeconfig
|
---|
| 36 |
|
---|
| 37 | ifeq (yes,$(build-shared))
|
---|
| 38 | -tests = bug-iconv1 bug-iconv2 tst-loading tst-e2big tst-iconv4 bug-iconv4
|
---|
| 39 | +tests = bug-iconv1 bug-iconv2 tst-loading tst-e2big tst-iconv4 bug-iconv4 \
|
---|
| 40 | + tst-iconv6
|
---|
| 41 | ifeq ($(have-thread-library),yes)
|
---|
| 42 | tests += bug-iconv3
|
---|
| 43 | endif
|
---|
| 44 | diff -Naur glibc-2.4.orig/iconvdata/tst-iconv6.c glibc-2.4/iconvdata/tst-iconv6.c
|
---|
| 45 | --- glibc-2.4.orig/iconvdata/tst-iconv6.c 1969-12-31 19:00:00.000000000 -0500
|
---|
| 46 | +++ glibc-2.4/iconvdata/tst-iconv6.c 2006-06-19 11:38:42.000000000 -0400
|
---|
| 47 | @@ -0,0 +1,35 @@
|
---|
| 48 | +/* BZ #2569 */
|
---|
| 49 | +
|
---|
| 50 | +#include <iconv.h>
|
---|
| 51 | +#include <stdio.h>
|
---|
| 52 | +
|
---|
| 53 | +static int
|
---|
| 54 | +do_test (void)
|
---|
| 55 | +{
|
---|
| 56 | + iconv_t cd0 = iconv_open ("ISO-8859-7", "UTF-16LE");
|
---|
| 57 | + if (cd0 == (iconv_t) -1)
|
---|
| 58 | + {
|
---|
| 59 | + puts ("first iconv_open failed");
|
---|
| 60 | + return 1;
|
---|
| 61 | + }
|
---|
| 62 | + iconv_t cd1 = iconv_open ("ISO-8859-7", "UTF-16LE");
|
---|
| 63 | + if (cd1 == (iconv_t) -1)
|
---|
| 64 | + {
|
---|
| 65 | + puts ("second iconv_open failed");
|
---|
| 66 | + return 1;
|
---|
| 67 | + }
|
---|
| 68 | + if (iconv_close (cd0) != 0)
|
---|
| 69 | + {
|
---|
| 70 | + puts ("first iconv_close failed");
|
---|
| 71 | + return 1;
|
---|
| 72 | + }
|
---|
| 73 | + if (iconv_close (cd1) != 0)
|
---|
| 74 | + {
|
---|
| 75 | + puts ("second iconv_close failed");
|
---|
| 76 | + return 1;
|
---|
| 77 | + }
|
---|
| 78 | + return 0;
|
---|
| 79 | +}
|
---|
| 80 | +
|
---|
| 81 | +#define TEST_FUNCTION do_test ()
|
---|
| 82 | +#include "../test-skeleton.c"
|
---|