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