From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 417 invoked by alias); 29 Sep 2011 07:46:59 -0000 Received: (qmail 409 invoked by uid 22791); 29 Sep 2011 07:46:58 -0000 X-SWARE-Spam-Status: No, hits=-2.4 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW X-Spam-Check-By: sourceware.org Received: from mail-yi0-f41.google.com (HELO mail-yi0-f41.google.com) (209.85.218.41) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 29 Sep 2011 07:46:43 +0000 Received: by yia25 with SMTP id 25so348727yia.0 for ; Thu, 29 Sep 2011 00:46:43 -0700 (PDT) MIME-Version: 1.0 Received: by 10.68.71.193 with SMTP id x1mr49482201pbu.132.1317282402826; Thu, 29 Sep 2011 00:46:42 -0700 (PDT) Received: by 10.143.147.12 with HTTP; Thu, 29 Sep 2011 00:46:42 -0700 (PDT) In-Reply-To: References: Date: Thu, 29 Sep 2011 08:27:00 -0000 Message-ID: Subject: Re: [PATCH] PR-10034 Bad space handling in set remote exec-file command From: Abhijit Halder To: "gdb-patches@sourceware.org ml" Content-Type: multipart/mixed; boundary=bcaec544f098b0794a04ae0fb509 X-IsSubscribed: yes 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 X-SW-Source: 2011-09/txt/msg00507.txt.bz2 --bcaec544f098b0794a04ae0fb509 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 3340 On Mon, Sep 26, 2011 at 11:22 AM, Abhijit Halder wrote: > On Mon, Sep 26, 2011 at 10:52 AM, Abhijit Halder > wrote: >> On Sun, Sep 25, 2011 at 2:21 PM, Abhijit Halder >> wrote: >>> Hi, >>> >>> In the set remote exec-file command if we provide space at the end of >>> the file-name the space is not being cleared. This behaviour is >>> inconsistent across similar set commands like set logging file etc. My >>> patch will fix that behaviour. Please review this patch. >>> >>> Further, I have found that there is a function in cli/cli-utils.c >>> called remove_trailing_whitespace that never used. In many times we >>> have removed trailing spaces and for that inline code is written. In >>> my next patch I am planning to modify the remove_trailing_whitespace >>> function and use it whenever possible in that. Since that patch will >>> be relevant to current fix I am proposing, I have mentioned here that >>> point. >>> >>> Thanks, >>> Abhijit Halder >>> >> >> Oops! A mistake. Correcting the same. >> > > > Index: gdb/cli/cli-setshow.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > RCS file: /cvs/src/src/gdb/cli/cli-setshow.c,v > retrieving revision 1.46 > diff -a -p -u -r1.46 cli-setshow.c > --- gdb/cli/cli-setshow.c =A0 =A0 =A0 4 Aug 2011 19:10:13 -0000 =A0 =A0 = =A0 1.46 > +++ gdb/cli/cli-setshow.c =A0 =A0 =A0 25 Sep 2011 08:28:52 -0000 > @@ -181,6 +181,14 @@ do_setshow_command (char *arg, int from_ > =A0 =A0 =A0 =A0 =A0 =A0arg =3D ""; > =A0 =A0 =A0 =A0 =A0if (*(char **) c->var !=3D NULL) > =A0 =A0 =A0 =A0 =A0 =A0xfree (*(char **) c->var); > + =A0 =A0 =A0 =A0 { > + =A0 =A0 =A0 =A0 =A0 /* Clear trailing whitespace of string. =A0*/ > + =A0 =A0 =A0 =A0 =A0 char *ptr =3D arg + strlen (arg) - 1; > + > + =A0 =A0 =A0 =A0 =A0 while (ptr >=3D arg && (*ptr =3D=3D ' ' || *ptr =3D= =3D '\t')) > + =A0 =A0 =A0 =A0 =A0 =A0 ptr--; > + =A0 =A0 =A0 =A0 =A0 *(ptr + 1) =3D '\0'; > >>>>>>>>>>>>>Here 'ptr' may point to a read-only memory when 'arg' is passe= d as NULL pointer. > > + =A0 =A0 =A0 =A0 } > =A0 =A0 =A0 =A0 =A0*(char **) c->var =3D xstrdup (arg); > =A0 =A0 =A0 =A0 =A0break; > =A0 =A0 =A0 =A0case var_optional_filename: > > This case contains same code block as the earlier case. We can fall > through here from earlier case. > > @@ -188,6 +196,14 @@ do_setshow_command (char *arg, int from_ > =A0 =A0 =A0 =A0 =A0 =A0arg =3D ""; > =A0 =A0 =A0 =A0 =A0if (*(char **) c->var !=3D NULL) > =A0 =A0 =A0 =A0 =A0 =A0xfree (*(char **) c->var); > + =A0 =A0 =A0 =A0 { > + =A0 =A0 =A0 =A0 =A0 /* Clear trailing whitespace of filename. =A0*/ > + =A0 =A0 =A0 =A0 =A0 char *ptr =3D arg + strlen (arg) - 1; > + > + =A0 =A0 =A0 =A0 =A0 while (ptr >=3D arg && (*ptr =3D=3D ' ' || *ptr =3D= =3D '\t')) > + =A0 =A0 =A0 =A0 =A0 =A0 ptr--; > + =A0 =A0 =A0 =A0 =A0 *(ptr + 1) =3D '\0'; > + =A0 =A0 =A0 =A0 } > =A0 =A0 =A0 =A0 =A0*(char **) c->var =3D xstrdup (arg); > =A0 =A0 =A0 =A0 =A0break; > =A0 =A0 =A0 =A0case var_filename: > > I have made the corrections. Please ignore the earlier patch sent in hurr= y. > > > Thanks, > Abhijit Halder > Correcting the indentation. Regards, Abhijit Halder --bcaec544f098b0794a04ae0fb509 Content-Type: text/x-patch; charset=US-ASCII; name="gdb-space-issue.patch" Content-Disposition: attachment; filename="gdb-space-issue.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gt5fvli62 Content-length: 2758 SW5kZXg6IGdkYi9jbGkvY2xpLXNldHNob3cuYwo9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09ClJDUyBmaWxlOiAvY3ZzL3NyYy9zcmMvZ2RiL2NsaS9jbGktc2V0 c2hvdy5jLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjQ2CmRpZmYgLWEgLXAg LXUgLXIxLjQ2IGNsaS1zZXRzaG93LmMKLS0tIGdkYi9jbGkvY2xpLXNldHNo b3cuYwk0IEF1ZyAyMDExIDE5OjEwOjEzIC0wMDAwCTEuNDYKKysrIGdkYi9j bGkvY2xpLXNldHNob3cuYwkyOSBTZXAgMjAxMSAwNzozOTo0NSAtMDAwMApA QCAtMTc3LDE1ICsxNzcsMTggQEAgZG9fc2V0c2hvd19jb21tYW5kIChjaGFy ICphcmcsIGludCBmcm9tXwogCSAgfQogCSAgYnJlYWs7CiAJY2FzZSB2YXJf c3RyaW5nX25vZXNjYXBlOgotCSAgaWYgKGFyZyA9PSBOVUxMKQotCSAgICBh cmcgPSAiIjsKLQkgIGlmICgqKGNoYXIgKiopIGMtPnZhciAhPSBOVUxMKQot CSAgICB4ZnJlZSAoKihjaGFyICoqKSBjLT52YXIpOwotCSAgKihjaGFyICoq KSBjLT52YXIgPSB4c3RyZHVwIChhcmcpOwotCSAgYnJlYWs7CiAJY2FzZSB2 YXJfb3B0aW9uYWxfZmlsZW5hbWU6CiAJICBpZiAoYXJnID09IE5VTEwpCiAJ ICAgIGFyZyA9ICIiOworCSAgZWxzZQorCSAgICB7CisJICAgICAgLyogQ2xl YXIgdHJhaWxpbmcgd2hpdGVzcGFjZS4gICovCisJICAgICAgY2hhciAqcHRy ID0gYXJnICsgc3RybGVuIChhcmcpIC0gMTsKKworCSAgICAgIHdoaWxlIChw dHIgPj0gYXJnICYmICgqcHRyID09ICcgJyB8fCAqcHRyID09ICdcdCcpKQor CQlwdHItLTsKKwkgICAgICAqKHB0ciArIDEpID0gJ1wwJzsKKwkgICAgfQog CSAgaWYgKCooY2hhciAqKikgYy0+dmFyICE9IE5VTEwpCiAJICAgIHhmcmVl ICgqKGNoYXIgKiopIGMtPnZhcik7CiAJICAqKGNoYXIgKiopIGMtPnZhciA9 IHhzdHJkdXAgKGFyZyk7CkBAIC0xOTMsMTYgKzE5NiwxNyBAQCBkb19zZXRz aG93X2NvbW1hbmQgKGNoYXIgKmFyZywgaW50IGZyb21fCiAJY2FzZSB2YXJf ZmlsZW5hbWU6CiAJICBpZiAoYXJnID09IE5VTEwpCiAJICAgIGVycm9yX25v X2FyZyAoXygiZmlsZW5hbWUgdG8gc2V0IGl0IHRvLiIpKTsKKwkgIGVsc2UK KwkgICAgeworCSAgICAgIC8qIENsZWFyIHRyYWlsaW5nIHdoaXRlc3BhY2Uu ICAqLworCSAgICAgIGNoYXIgKnB0ciA9IGFyZyArIHN0cmxlbiAoYXJnKSAt IDE7CisKKwkgICAgICB3aGlsZSAocHRyID49IGFyZyAmJiAoKnB0ciA9PSAn ICcgfHwgKnB0ciA9PSAnXHQnKSkKKwkJcHRyLS07CisJICAgICAgKihwdHIg KyAxKSA9ICdcMCc7CisJICAgIH0KIAkgIGlmICgqKGNoYXIgKiopIGMtPnZh ciAhPSBOVUxMKQogCSAgICB4ZnJlZSAoKihjaGFyICoqKSBjLT52YXIpOwot CSAgewotCSAgICAvKiBDbGVhciB0cmFpbGluZyB3aGl0ZXNwYWNlIG9mIGZp bGVuYW1lLiAgKi8KLQkgICAgY2hhciAqcHRyID0gYXJnICsgc3RybGVuIChh cmcpIC0gMTsKLQotCSAgICB3aGlsZSAocHRyID49IGFyZyAmJiAoKnB0ciA9 PSAnICcgfHwgKnB0ciA9PSAnXHQnKSkKLQkgICAgICBwdHItLTsKLQkgICAg KihwdHIgKyAxKSA9ICdcMCc7Ci0JICB9CiAJICAqKGNoYXIgKiopIGMtPnZh ciA9IHRpbGRlX2V4cGFuZCAoYXJnKTsKIAkgIGJyZWFrOwogCWNhc2UgdmFy X2Jvb2xlYW46CkBAIC00MTksNyArNDIzLDcgQEAgY21kX3Nob3dfbGlzdCAo c3RydWN0IGNtZF9saXN0X2VsZW1lbnQgKgogICBmb3IgKDsgbGlzdCAhPSBO VUxMOyBsaXN0ID0gbGlzdC0+bmV4dCkKICAgICB7CiAgICAgICAvKiBJZiB3 ZSBmaW5kIGEgcHJlZml4LCBydW4gaXRzIGxpc3QsIHByZWZpeGluZyBvdXIg b3V0cHV0IGJ5IGl0cwotICAgICAgICAgcHJlZml4ICh3aXRoICJzaG93ICIg c2tpcHBlZCkuICAqLworCSBwcmVmaXggKHdpdGggInNob3cgIiBza2lwcGVk KS4gICovCiAgICAgICBpZiAobGlzdC0+cHJlZml4bGlzdCAmJiAhbGlzdC0+ YWJicmV2X2ZsYWcpCiAJewogCSAgc3RydWN0IGNsZWFudXAgKm9wdGlvbmxp c3RfY2hhaW4K --bcaec544f098b0794a04ae0fb509--