From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Jim Meyering Newsgroups: gmane.emacs.devel Subject: Re: building/using address-sanitizer-enabled emacs? Date: Tue, 9 May 2017 10:06:29 -0700 Message-ID: References: <83wp9scbwi.fsf@gnu.org> <83shkfct06.fsf@gnu.org> <83fugfcp3b.fsf@gnu.org> <83y3u6awjz.fsf@gnu.org> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 X-Trace: blaine.gmane.org 1494349741 19972 195.159.176.226 (9 May 2017 17:09:01 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Tue, 9 May 2017 17:09:01 +0000 (UTC) Cc: Paul Eggert , emacs-devel To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue May 09 19:08:57 2017 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1d88d5-00053g-UF for ged-emacs-devel@m.gmane.org; Tue, 09 May 2017 19:08:56 +0200 Original-Received: from localhost ([::1]:38293 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d88dB-0002Tk-5C for ged-emacs-devel@m.gmane.org; Tue, 09 May 2017 13:09:01 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:33257) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d88bC-0000i2-3R for emacs-devel@gnu.org; Tue, 09 May 2017 13:06:59 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d88b7-0004mc-KK for emacs-devel@gnu.org; Tue, 09 May 2017 13:06:58 -0400 Original-Received: from mail-ua0-x22d.google.com ([2607:f8b0:400c:c08::22d]:36700) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1d88b5-0004lq-Ic; Tue, 09 May 2017 13:06:51 -0400 Original-Received: by mail-ua0-x22d.google.com with SMTP id j17so7217551uag.3; Tue, 09 May 2017 10:06:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=W4ArCZdsL3lhuiQPw4+H7ikd1BQzMuqTzi9fmXZbrqg=; b=dSR4nq1Bekywdn1dzqxHx3R3MTBodETFLPlC5IDMqhUB/lfpuc3HPM6djYcWXuACmK dWmAIb7e6UHZ6XtGLrn3LLK4aA23WZ5+/+7EHaG7Om2UlHrwiFSPEo8SFSg1ahZVmwx5 /AY5lKLT0NM01ky7WgiBmXYTJLPz1tSpaAxp5AYl1FVH8/xssKIJqtNGBvjOZajNu+ob HnSWuY7omC53syovSOO44c4oGdsfudC1BETSU9HwHt2mpK1xASDoex78ncuvVBQzDeUn O5i7dVjI/f4UiXK+Eouln0/JvKKH3fFsptRZBaNdQz4x+DoxNfWmS995dAkVSxDpWZDU pk6w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=W4ArCZdsL3lhuiQPw4+H7ikd1BQzMuqTzi9fmXZbrqg=; b=GKKN7awvvukqFHkiHb6FgQuXMt+I3d8xb7XCS7UgxZzFcl1FUh2tst7OOjE7WjNQkZ D3SRt8yUvikgdHs2+C8w/rsBW38hIEKg4c8MgXWbRgcctdvPTiKvbH9fEC+QvKDMQKJQ WbNqwZYvLaDeji2xPZNQV1qhEUJyj/v8ZJnEJTrQDpuatwvJMrgM/bN7KPxGIkMLJVkZ T6wXJgjEafMD0Z6hTmK+ehj/GjQC6dpz80jE7BeHJM4uNkubh3c7OaWQHjKMhDjhShpG Lo8CnypW3P2+aF+ihOOLwqYCG43bFVwY3eE95vJyJiOQj1+6FqxzsFE49YP9qTzwBGGY 6Kww== X-Gm-Message-State: AODbwcC4pY4XXr5yLfW6AwrzqMxNGR9iBehcMWmY+zHfvK/21RamHHoE Ow9zsd2r3zxq3b6UhuQQXw1VlMy0kA== X-Received: by 10.31.238.143 with SMTP id m137mr438978vkh.109.1494349610744; Tue, 09 May 2017 10:06:50 -0700 (PDT) Original-Received: by 10.176.86.86 with HTTP; Tue, 9 May 2017 10:06:29 -0700 (PDT) In-Reply-To: <83y3u6awjz.fsf@gnu.org> X-Google-Sender-Auth: pKNO0DFHmxycK9IMErYoyOKuxAk X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400c:c08::22d X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:214723 Archived-At: On Tue, May 9, 2017 at 8:18 AM, Eli Zaretskii wrote: >> From: Jim Meyering >> Date: Mon, 8 May 2017 22:48:06 -0700 >> Cc: Paul Eggert , emacs-devel >> >> echo foo |gpg -c > foo.gpg >> src/temacs -q foo.gpg 2> err >> >> which reported this stack buffer overrun: >> >> ==24522==ERROR: AddressSanitizer: stack-buffer-overflow on address >> 0x7ffd5cc4d928 at pc 0x00000073fd76 bp 0x7ffd5cc4d910 sp >> 0x7ffd5cc4d908 >> READ of size 8 at 0x7ffd5cc4d928 thread T0 >> #0 0x73fd75 in PSEUDOVECTORP /home/j/w/co/emacs/src/lisp.h:1454 >> #1 0x7438c9 in BUFFERP /home/j/w/co/emacs/src/buffer.h:887 >> #2 0x9c64b6 in call_process /home/j/w/co/emacs/src/callproc.c:702 >> #3 0x9c41db in Fcall_process /home/j/w/co/emacs/src/callproc.c:270 >> #4 0x8e3122 in funcall_subr /home/j/w/co/emacs/src/eval.c:2799 >> #5 0x8e2aa1 in Ffuncall /home/j/w/co/emacs/src/eval.c:2744 >> #6 0x8e072d in Fapply /home/j/w/co/emacs/src/eval.c:2375 >> #7 0x8e3122 in funcall_subr /home/j/w/co/emacs/src/eval.c:2799 >> #8 0x8e2aa1 in Ffuncall /home/j/w/co/emacs/src/eval.c:2744 >> #9 0x98c89b in exec_byte_code /home/j/w/co/emacs/src/bytecode.c:641 >> #10 0x8e4b55 in funcall_lambda /home/j/w/co/emacs/src/eval.c:3022 >> #11 0x8e2ae1 in Ffuncall /home/j/w/co/emacs/src/eval.c:2746 >> #12 0x98c89b in exec_byte_code /home/j/w/co/emacs/src/bytecode.c:641 >> #13 0x8e4b55 in funcall_lambda /home/j/w/co/emacs/src/eval.c:3022 >> #14 0x8e2ae1 in Ffuncall /home/j/w/co/emacs/src/eval.c:2746 >> #15 0x98c89b in exec_byte_code /home/j/w/co/emacs/src/bytecode.c:641 >> #16 0x8e4604 in funcall_lambda /home/j/w/co/emacs/src/eval.c:2944 >> #17 0x8e2ae1 in Ffuncall /home/j/w/co/emacs/src/eval.c:2746 >> #18 0x98c89b in exec_byte_code /home/j/w/co/emacs/src/bytecode.c:641 >> #19 0x8e4604 in funcall_lambda /home/j/w/co/emacs/src/eval.c:2944 >> #20 0x8e2ae1 in Ffuncall /home/j/w/co/emacs/src/eval.c:2746 >> #21 0x98c89b in exec_byte_code /home/j/w/co/emacs/src/bytecode.c:641 >> #22 0x8e4604 in funcall_lambda /home/j/w/co/emacs/src/eval.c:2944 >> #23 0x8e2ae1 in Ffuncall /home/j/w/co/emacs/src/eval.c:2746 >> #24 0x8e072d in Fapply /home/j/w/co/emacs/src/eval.c:2375 >> #25 0x8e3122 in funcall_subr /home/j/w/co/emacs/src/eval.c:2799 >> #26 0x8e2aa1 in Ffuncall /home/j/w/co/emacs/src/eval.c:2744 >> #27 0x98c89b in exec_byte_code /home/j/w/co/emacs/src/bytecode.c:641 >> #28 0x8e4604 in funcall_lambda /home/j/w/co/emacs/src/eval.c:2944 >> #29 0x8e2ae1 in Ffuncall /home/j/w/co/emacs/src/eval.c:2746 >> #30 0x8e1f8d in call6 /home/j/w/co/emacs/src/eval.c:2649 >> #31 0x8034eb in Finsert_file_contents /home/j/w/co/emacs/src/fileio.c:3602 >> #32 0x8e367f in funcall_subr /home/j/w/co/emacs/src/eval.c:2831 >> #33 0x8e2aa1 in Ffuncall /home/j/w/co/emacs/src/eval.c:2744 >> #34 0x98c89b in exec_byte_code /home/j/w/co/emacs/src/bytecode.c:641 >> #35 0x8e4604 in funcall_lambda /home/j/w/co/emacs/src/eval.c:2944 >> #36 0x8e2ae1 in Ffuncall /home/j/w/co/emacs/src/eval.c:2746 >> #37 0x98c89b in exec_byte_code /home/j/w/co/emacs/src/bytecode.c:641 >> #38 0x8e4604 in funcall_lambda /home/j/w/co/emacs/src/eval.c:2944 >> #39 0x8e2ae1 in Ffuncall /home/j/w/co/emacs/src/eval.c:2746 >> #40 0x98c89b in exec_byte_code /home/j/w/co/emacs/src/bytecode.c:641 >> #41 0x8e4604 in funcall_lambda /home/j/w/co/emacs/src/eval.c:2944 >> #42 0x8e2ae1 in Ffuncall /home/j/w/co/emacs/src/eval.c:2746 >> #43 0x98c89b in exec_byte_code /home/j/w/co/emacs/src/bytecode.c:641 >> #44 0x8e4604 in funcall_lambda /home/j/w/co/emacs/src/eval.c:2944 >> #45 0x8e2ae1 in Ffuncall /home/j/w/co/emacs/src/eval.c:2746 >> #46 0x98c89b in exec_byte_code /home/j/w/co/emacs/src/bytecode.c:641 >> #47 0x8e4604 in funcall_lambda /home/j/w/co/emacs/src/eval.c:2944 >> #48 0x8e2ae1 in Ffuncall /home/j/w/co/emacs/src/eval.c:2746 >> #49 0x98c89b in exec_byte_code /home/j/w/co/emacs/src/bytecode.c:641 >> #50 0x8e4604 in funcall_lambda /home/j/w/co/emacs/src/eval.c:2944 >> #51 0x8e3f96 in apply_lambda /home/j/w/co/emacs/src/eval.c:2881 >> #52 0x8df8ab in eval_sub /home/j/w/co/emacs/src/eval.c:2265 >> #53 0x8dda2c in Feval /home/j/w/co/emacs/src/eval.c:2042 >> #54 0x8df175 in eval_sub /home/j/w/co/emacs/src/eval.c:2223 >> #55 0x945574 in readevalloop /home/j/w/co/emacs/src/lread.c:1947 >> #56 0x9425f5 in Fload /home/j/w/co/emacs/src/lread.c:1352 >> #57 0x8df41e in eval_sub /home/j/w/co/emacs/src/eval.c:2234 >> #58 0x8dda2c in Feval /home/j/w/co/emacs/src/eval.c:2042 >> #59 0x751a34 in top_level_2 /home/j/w/co/emacs/src/keyboard.c:1121 >> #60 0x8d9c05 in internal_condition_case /home/j/w/co/emacs/src/eval.c:1326 >> #61 0x751a97 in top_level_1 /home/j/w/co/emacs/src/keyboard.c:1129 >> #62 0x8d83e9 in internal_catch /home/j/w/co/emacs/src/eval.c:1091 >> #63 0x751899 in command_loop /home/j/w/co/emacs/src/keyboard.c:1090 >> #64 0x75033f in recursive_edit_1 /home/j/w/co/emacs/src/keyboard.c:697 >> #65 0x7506dd in Frecursive_edit /home/j/w/co/emacs/src/keyboard.c:768 >> #66 0x74bbb9 in main /home/j/w/co/emacs/src/emacs.c:1687 >> #67 0x7f40c7732400 in __libc_start_main (/lib64/libc.so.6+0x20400) >> #68 0x40d369 in _start (/home/j/w/co/emacs/src/temacs+0x40d369) >> >> Address 0x7ffd5cc4d928 is located in stack of thread T0 at offset 136 in frame >> #0 0x9c8c15 in child_setup /home/j/w/co/emacs/src/callproc.c:1179 >> >> This frame has 2 object(s): >> [32, 40) 'display' >> [96, 104) 'tmp' <== Memory access at offset 136 overflows this variable >> HINT: this may be a false positive if your program uses some custom >> stack unwind mechanism or swapcontext > > I admit that I don't understand this report. At the point where the > report claims there was buffer overflow, child_setup is not in the > call stack, because it is/was called in another process after vfork: > the callstack shows the stack of the Emacs process, whereas > child_setup is called by a child process. So either the report shows > a stack of a wrong process, or something else is going on. Or maybe I > simply don't understand how to read this report. Thanks for looking. I confess I have not done so. Does this caveat apply? HINT: this may be a false positive if your program uses some custom stack unwind mechanism or swapcontext