From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20350 invoked by alias); 20 Dec 2019 15:53:37 -0000 Mailing-List: contact libc-locales-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: libc-locales-owner@sourceware.org Received: (qmail 20340 invoked by uid 89); 20 Dec 2019 15:53:36 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.1 spammy=our X-HELO: mail-io1-f52.google.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=+KMloZeDkBMaHn5scItbT2Y89f3FKvGDproNC40dc4o=; b=I6StP2ZvOmk17EMxTslyWMPy4M8Z+/Mqr5SP17hFzPZ1XW+qyxEHxx0XNM1bsLLCw2 A57mBv+80fkeeoz9QzC9MtfOII8ns5pQY9ZmrvEZ4MBCaWQoklSe34hwFrnpOBZOtUgz FQsVKqEY9s4USCuoYpr1ZD8SaecWiwfVpBx9+gD0I/QKnG3ye24rM74NUoHQXFf6C2BT pqif6K0qvfJVbuSESiWL2G0WDgNCdfCOr4cJc+WiCo9p9ftLkFwvK5tjjXjo/F6hG55x +7UAtXcyLk6vapSw8q+iAbj+sfJ7VWRgtoU1B6ASfkg5C7tEyR9of6/LVuIZsLdgZhUM gd4w== MIME-Version: 1.0 References: <87bltiv10t.fsf@oldenburg2.str.redhat.com> <877e42cqfo.fsf@oldenburg2.str.redhat.com> <875ziledsy.fsf@oldenburg2.str.redhat.com> <87mubngh8e.fsf@oldenburg2.str.redhat.com> <8736dfgfyo.fsf@oldenburg2.str.redhat.com> In-Reply-To: <8736dfgfyo.fsf@oldenburg2.str.redhat.com> From: Abhidnya Joshi Date: Fri, 20 Dec 2019 15:53:00 -0000 Message-ID: Subject: Re: Crash in gconv_db.c To: Florian Weimer Cc: libc-locales@sourceware.org Content-Type: text/plain; charset="UTF-8" X-SW-Source: 2019-q4/txt/msg00098.txt.bz2 DO you want to capture those as part of core or any other debug enable during test run? The stack looks like this. (gdb) bt #0 0x00007f028aa6f31a in increment_counter (nsteps=2, steps=0x7f028853b140) at gconv_db.c:393 #1 find_derivation (toset=toset@entry=0x7f0251ceb990 "UTF-16LE//", toset_expand=0x0, fromset=fromset@entry=0x7f0251ceb970 "UTF-8//", fromset_expand=fromset_expand@entry=0x7f028853a798 "ISO-10646/UTF8/", handle=handle@entry=0x7f0251ceb900, nsteps=nsteps@entry=0x7f0251ceb910) at gconv_db.c:426 #2 0x00007f028aa6ff61 in __gconv_find_transform (toset=toset@entry=0x7f0251ceb990 "UTF-16LE//", fromset=fromset@entry=0x7f0251ceb970 "UTF-8//", handle=handle@entry=0x7f0251ceb900, nsteps=nsteps@entry=0x7f0251ceb910, flags=flags@entry=0) at gconv_db.c:755 #3 0x00007f028aa6e7ea in __gconv_open (toset=toset@entry=0x7f0251ceb990 "UTF-16LE//", fromset=fromset@entry=0x7f0251ceb970 "UTF-8//", handle=handle@entry=0x7f0251ceb9c0, flags=flags@entry=0) at gconv_open.c:173 #4 0x00007f028aa6e371 in iconv_open (tocode=0x7f0251ceb990 "UTF-16LE//", fromcode=0x7f0251ceb970 "UTF-8//") at iconv_open.c:71 (Pasting last 4 frames out of 27) The gconv_steps looked like below: (gdb) p *(&step[1]) $4 = {__shlib_handle = 0x7f028853b240, __modname = 0x7f028853b270 "/usr/lib64/gconv/UTF-16.so", __counter = 1, __from_name = 0x7f028abca431 "INTERNAL", __to_name = 0x7f028853b220 "UTF-16LE//", __fct = 0x59e0be5c0391534f, __btowc_fct = 0xa7e5bbe252f1534f, __init_fct = 0x59e0be5c1c91534f, __end_fct = 0x59e0be5c03b1534f, __min_needed_from = 4, __max_needed_from = 4, __min_needed_to = 2, __max_needed_to = 4, __stateful = 0, __data = 0x9bd320} (gdb) p *(&step[0]) $5 = {__shlib_handle = 0x0, __modname = 0x0, __counter = 1, __from_name = 0x7f028853b890 "ISO-10646/UTF8/", __to_name = 0x7f028abca431 "INTERNAL", __fct = 0x7f028aa73ce0 <__gconv_transform_utf8_internal>, __btowc_fct = 0x7f028aa714b0 <__gconv_btwoc_ascii>, __init_fct = 0x0, __end_fct = 0x0, __min_needed_from = 1, __max_needed_from = 6, __min_needed_to = 4, __max_needed_to = 4, __stateful = 0, __data = 0x0} (gdb) Thanks and Regards Abhidnya Joshi On Fri, Dec 20, 2019 at 9:13 PM Florian Weimer wrote: > > * Abhidnya Joshi: > > > Its not glibc readdir. It just readdir call on wire (SMB client and > > server). We internally call iconv_open in our dir listing. > > Okay. Can you somehow capture the glibc API calls and perhaps build a > reproducer that way? > > Do you call readdir_r, by chance? > > Thanks, > Florian >