[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" |
---|