From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Andreas Schwab Newsgroups: gmane.emacs.bugs Subject: bug#37884: 27.0.50; Cannot write to a file in VirtualBox shared directory Date: Tue, 29 Oct 2019 10:04:01 +0100 Message-ID: References: <87h83zeoy1.fsf@pobox.com> <87blu2emi3.fsf@pobox.com> <83lft6rxrs.fsf@gnu.org> <874kztdy0l.fsf@pobox.com> <87zhhkc4vs.fsf@pobox.com> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="245875"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) Cc: 37884@debbugs.gnu.org, Robert Pluim To: Bernardo Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Tue Oct 29 10:05:12 2019 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1iPNR9-0011hf-UN for geb-bug-gnu-emacs@m.gmane.org; Tue, 29 Oct 2019 10:05:12 +0100 Original-Received: from localhost ([::1]:53140 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iPNR8-0005Qx-Oh for geb-bug-gnu-emacs@m.gmane.org; Tue, 29 Oct 2019 05:05:10 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:45656) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iPNR1-0005Pb-Vv for bug-gnu-emacs@gnu.org; Tue, 29 Oct 2019 05:05:05 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iPNR1-0001Qn-0A for bug-gnu-emacs@gnu.org; Tue, 29 Oct 2019 05:05:03 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:38025) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iPNR0-0001QW-Se for bug-gnu-emacs@gnu.org; Tue, 29 Oct 2019 05:05:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1iPNR0-0000T1-Ks for bug-gnu-emacs@gnu.org; Tue, 29 Oct 2019 05:05:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Andreas Schwab Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 29 Oct 2019 09:05:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 37884 X-GNU-PR-Package: emacs Original-Received: via spool by 37884-submit@debbugs.gnu.org id=B37884.15723398501729 (code B ref 37884); Tue, 29 Oct 2019 09:05:02 +0000 Original-Received: (at 37884) by debbugs.gnu.org; 29 Oct 2019 09:04:10 +0000 Original-Received: from localhost ([127.0.0.1]:46846 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iPNQ9-0000Rn-Pg for submit@debbugs.gnu.org; Tue, 29 Oct 2019 05:04:09 -0400 Original-Received: from mx2.suse.de ([195.135.220.15]:52460 helo=mx1.suse.de) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iPNQ7-0000RZ-QP for 37884@debbugs.gnu.org; Tue, 29 Oct 2019 05:04:08 -0400 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Original-Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id BA109AD95; Tue, 29 Oct 2019 09:04:01 +0000 (UTC) X-Yow: Are we live or on tape? In-Reply-To: <87zhhkc4vs.fsf@pobox.com> (Bernardo's message of "Tue, 29 Oct 2019 19:50:15 +1100") X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:170353 Archived-At: On Okt 29 2019, Bernardo wrote: > diff --git a/src/filelock.c b/src/filelock.c > index ff25d6475d..046a1b014f 100644 > --- a/src/filelock.c > +++ b/src/filelock.c > @@ -732,6 +732,16 @@ unlock_file (Lisp_Object fn) > int err = current_lock_owner (0, lfname); > if (err == -2 && unlink (lfname) != 0 && errno != ENOENT) > err = errno; > + /* On certain filesystems the file must be writable for unlink to > + succeed (Bug#37784). */ > + if (errno == EPERM) You need to move this check under the condition above, otherwise you may get a false positive if unlink didn't fail or wasn't called at all. > + { > + chmod (lfname, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH); > + err = 0; > + errno = 0; No need to clear errno here. > + if (unlink (lfname) != 0 && errno != ENOENT) > + err = errno; > + } Andreas. -- Andreas Schwab, SUSE Labs, schwab@suse.de GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE 1748 E4D4 88E3 0EEA B9D7 "And now for something completely different."