From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 105728 invoked by alias); 7 Sep 2015 18:42:38 -0000 Mailing-List: contact cygwin-help@cygwin.com; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner@cygwin.com Mail-Followup-To: cygwin@cygwin.com Received: (qmail 105716 invoked by uid 89); 7 Sep 2015 18:42:37 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.0 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-wi0-f175.google.com Received: from mail-wi0-f175.google.com (HELO mail-wi0-f175.google.com) (209.85.212.175) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Mon, 07 Sep 2015 18:42:36 +0000 Received: by wicfx3 with SMTP id fx3so96679881wic.1 for ; Mon, 07 Sep 2015 11:42:33 -0700 (PDT) X-Received: by 10.180.89.99 with SMTP id bn3mr35995917wib.61.1441651353548; Mon, 07 Sep 2015 11:42:33 -0700 (PDT) MIME-Version: 1.0 Received: by 10.28.144.196 with HTTP; Mon, 7 Sep 2015 11:41:53 -0700 (PDT) Reply-To: fracting@gmail.com In-Reply-To: References: From: Qian Hong Date: Mon, 07 Sep 2015 18:42:00 -0000 Message-ID: Subject: Re: Question about flock - potential memory corruption? To: cygwin Content-Type: text/plain; charset=UTF-8 X-IsSubscribed: yes X-SW-Source: 2015-09/txt/msg00115.txt.bz2 Hi, I was still not able to make valgrind display Cygwin symbols, so I manually translate the address to line this time. Tested with $ uname -a CYGWIN_NT-5.1 2.2.1(0.289/5/3) 2015-08-20 11:40 i686 Cygwin ==29863== Conditional jump or move depends on uninitialised value(s) ==29863== at 0x7BC82768: RtlGetOwnerSecurityDescriptor (sec.c:740) ==29863== by 0x7BC92356: NTDLL_create_struct_sd (sync.c:96) ==29863== by 0x7BC92E10: NtCreateEvent (sync.c:294) ==29863== by 0x6107B937: ??? ==29863== by 0x61304697: ??? Here 0x6107b937 is the call to NtCreateEvent() inside lockf_t::create_lock_obj() at: https://cygwin.com/git/gitweb.cgi?p=newlib-cygwin.git;a=blob;f=winsup/cygwin/flock.cc;h=2332f5467e37d124acfd12c0f85a30281f10a952;hb=HEAD#l772 (I can't explain what the address 0x61304697 means, it seems a bit weird to me, not sure if it is valgrind related) Related Wine source code: https://github.com/wine-compholio/wine-patched/blob/8b3a785e97a7e28ff58731b58d19237a59239acc/dlls/ntdll/sync.c#L294 https://github.com/wine-compholio/wine-patched/blob/8b3a785e97a7e28ff58731b58d19237a59239acc/dlls/ntdll/sync.c#L96 https://github.com/wine-compholio/wine-patched/blob/8b3a785e97a7e28ff58731b58d19237a59239acc/dlls/ntdll/sec.c#L740 According to valgrind, lpsd->Control in RtlGetOwnerSecurityDescriptor() is uninitialized, which means ((SECURITY_DESCRIPTOR*)attr->SecurityDescriptor)->Control in NtCreateEvent(,attr,) is not initialized, that's why I'm looking at create_lock_obj_attr() and everyone_sd(). It seems after create_lock_obj_attr returned the memory allocated by alloca() is gone, which cause the valgrind warnings, also cause the random failures. If there is any further information required I'm glad to test and provide. Any comments are great appreciated! Thanks again! -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple