From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 94347 invoked by alias); 20 Sep 2017 17:02:55 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 94335 invoked by uid 89); 20 Sep 2017 17:02:55 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-26.9 required=5.0 tests=BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RP_MATCHES_RCVD,SPF_HELO_PASS autolearn=ham version=3.3.2 spammy= X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 20 Sep 2017 17:02:53 +0000 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 7A4938765D for ; Wed, 20 Sep 2017 17:02:52 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 7A4938765D Authentication-Results: ext-mx02.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx02.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=sergiodj@redhat.com Received: from localhost (unused-10-15-17-193.yyz.redhat.com [10.15.17.193]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 4EC026017B; Wed, 20 Sep 2017 17:02:52 +0000 (UTC) From: Sergio Durigan Junior To: Pedro Alves Cc: GDB Patches Subject: Re: [PATCH v2 2/5] Get rid of "gdb_dirbuf" and use "getcwd (NULL, 0)" References: <20170912042325.14927-1-sergiodj@redhat.com> <20170919042842.9210-1-sergiodj@redhat.com> <20170919042842.9210-3-sergiodj@redhat.com> <8502d25b-7546-f962-af8f-46bc443d771c@redhat.com> Date: Wed, 20 Sep 2017 17:02:00 -0000 In-Reply-To: <8502d25b-7546-f962-af8f-46bc443d771c@redhat.com> (Pedro Alves's message of "Wed, 20 Sep 2017 13:24:41 +0100") Message-ID: <87a81ppakk.fsf@redhat.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-IsSubscribed: yes X-SW-Source: 2017-09/txt/msg00508.txt.bz2 On Wednesday, September 20 2017, Pedro Alves wrote: > On 09/19/2017 05:28 AM, Sergio Durigan Junior wrote: >> Currently we have "current_directory" and "gdb_dirbuf" globals, which >> means that we basically have two possible places to consult when we >> want to know GDB's current working directory. >> >> This is not ideal and can lead to confusion. Moreover, the way we're >> using "gdb_difbuf" along with "getcwd" is problematic because we >> declare the buffer with "1024" elements hardcoded, which does not take >> into account longer pathnames that are possible in many filesystems. >> Using "PATH_MAX" would also not be a solution because of portability >> problems. Therefore, the best solution is to rely on the fact that >> "getcwd (NULL, 0)" will "do the right thing" and return a >> heap-allocated string containing the full path. With the new "getcwd" >> module from gnulib, it is now possible to do that without worrying >> about breaking some target. > > s/target/host/ Fixed. >> --- a/gdb/cli/cli-cmds.c >> +++ b/gdb/cli/cli-cmds.c >> @@ -382,13 +382,16 @@ pwd_command (char *args, int from_tty) >> { >> if (args) >> error (_("The \"pwd\" command does not take an argument: %s"), args); >> - if (! getcwd (gdb_dirbuf, sizeof (gdb_dirbuf))) >> + >> + gdb::unique_xmalloc_ptr cwd (getcwd (NULL, 0)); >> + >> + if (cwd.get () == NULL) > > No need for get() here: > > if (cwd == NULL) Fixed. >> diff --git a/gdb/mi/mi-cmd-env.c b/gdb/mi/mi-cmd-env.c >> index 977b6e274d..1e4c09352f 100644 >> --- a/gdb/mi/mi-cmd-env.c >> +++ b/gdb/mi/mi-cmd-env.c >> @@ -73,12 +73,12 @@ mi_cmd_env_pwd (const char *command, char **argv, int argc) >> } >> >> /* Otherwise the mi level is 2 or higher. */ >> - >> - if (! getcwd (gdb_dirbuf, sizeof (gdb_dirbuf))) >> + gdb::unique_xmalloc_ptr cwd (getcwd (NULL, 0)); >> + if (cwd.get () == NULL) > > Ditto. Fixed. > Otherwise OK. > > Thanks, > Pedro Alves I'll wait until the other patches are approved to push this one, since it depends on gnulib's getcwd. Thanks, -- Sergio GPG key ID: 237A 54B1 0287 28BF 00EF 31F4 D0EB 7628 65FC 5E36 Please send encrypted e-mail if possible http://sergiodj.net/