From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20600 invoked by alias); 26 Sep 2011 05:52:52 -0000 Received: (qmail 20592 invoked by uid 22791); 26 Sep 2011 05:52:51 -0000 X-SWARE-Spam-Status: No, hits=-2.6 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-gw0-f41.google.com (HELO mail-gw0-f41.google.com) (74.125.83.41) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 26 Sep 2011 05:52:35 +0000 Received: by gwaa12 with SMTP id a12so6493917gwa.0 for ; Sun, 25 Sep 2011 22:52:34 -0700 (PDT) MIME-Version: 1.0 Received: by 10.68.17.193 with SMTP id q1mr18878258pbd.98.1317016353456; Sun, 25 Sep 2011 22:52:33 -0700 (PDT) Received: by 10.143.147.12 with HTTP; Sun, 25 Sep 2011 22:52:33 -0700 (PDT) In-Reply-To: References: Date: Mon, 26 Sep 2011 16:01: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=bcaec520ea43e9428a04add1c352 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/msg00445.txt.bz2 --bcaec520ea43e9428a04add1c352 Content-Type: text/plain; charset=ISO-8859-1 Content-length: 2446 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 =================================================================== 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 4 Aug 2011 19:10:13 -0000 1.46 +++ gdb/cli/cli-setshow.c 25 Sep 2011 08:28:52 -0000 @@ -181,6 +181,14 @@ do_setshow_command (char *arg, int from_ arg = ""; if (*(char **) c->var != NULL) xfree (*(char **) c->var); + { + /* Clear trailing whitespace of string. */ + char *ptr = arg + strlen (arg) - 1; + + while (ptr >= arg && (*ptr == ' ' || *ptr == '\t')) + ptr--; + *(ptr + 1) = '\0'; >>>>>>>>>>>>Here 'ptr' may point to a read-only memory when 'arg' is passed as NULL pointer. + } *(char **) c->var = xstrdup (arg); break; case 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_ arg = ""; if (*(char **) c->var != NULL) xfree (*(char **) c->var); + { + /* Clear trailing whitespace of filename. */ + char *ptr = arg + strlen (arg) - 1; + + while (ptr >= arg && (*ptr == ' ' || *ptr == '\t')) + ptr--; + *(ptr + 1) = '\0'; + } *(char **) c->var = xstrdup (arg); break; case var_filename: I have made the corrections. Please ignore the earlier patch sent in hurry. Thanks, Abhijit Halder --bcaec520ea43e9428a04add1c352 Content-Type: text/plain; charset=US-ASCII; name="ChangeLog.txt" Content-Disposition: attachment; filename="ChangeLog.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gt11brw71 Content-length: 249 MjAxMS0wOS0xMyAgQWJoaWppdCBIYWxkZXIgIDxhYmhpaml0LmsuaGFsZGVy QGdtYWlsLmNvbT4KCglGaXggUFIgcmVtb3RlLzEwMDM0OgoJKiBjbGkvY2xp LXNldHNob3cuYyAoZG9fc2V0c2hvd19jb21tYW5kKTogQ2xlYXIgdHJhaWxp bmcgd2hpdGVzcGFjZQoJZnJvbSBjb21tYW5kIGFyZ3VtZW50IHN0cmluZ3Mu Cg== --bcaec520ea43e9428a04add1c352 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_gt11b0wu0 Content-length: 2445 SW5kZXg6IGdkYi9jbGkvY2xpLXNldHNob3cuYwo9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09ClJDUyBmaWxlOiAvY3ZzL3NyYy9zcmMvZ2RiL2NsaS9jbGktc2V0 c2hvdy5jLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjQ2CmRpZmYgLWEgLXAg LXUgLXIxLjQ2IGNsaS1zZXRzaG93LmMKLS0tIGdkYi9jbGkvY2xpLXNldHNo b3cuYwk0IEF1ZyAyMDExIDE5OjEwOjEzIC0wMDAwCTEuNDYKKysrIGdkYi9j bGkvY2xpLXNldHNob3cuYwkyNiBTZXAgMjAxMSAwNTozNjowMSAtMDAwMApA QCAtMTc3LDE1ICsxNzcsMTggQEAgZG9fc2V0c2hvd19jb21tYW5kIChjaGFy ICphcmcsIGludCBmcm9tXwogCSAgfQogCSAgYnJlYWs7CiAJY2FzZSB2YXJf c3RyaW5nX25vZXNjYXBlOgotCSAgaWYgKGFyZyA9PSBOVUxMKQotCSAgICBh cmcgPSAiIjsKLQkgIGlmICgqKGNoYXIgKiopIGMtPnZhciAhPSBOVUxMKQot CSAgICB4ZnJlZSAoKihjaGFyICoqKSBjLT52YXIpOwotCSAgKihjaGFyICoq KSBjLT52YXIgPSB4c3RyZHVwIChhcmcpOwotCSAgYnJlYWs7CiAJY2FzZSB2 YXJfb3B0aW9uYWxfZmlsZW5hbWU6CiAJICBpZiAoYXJnID09IE5VTEwpCiAJ ICAgIGFyZyA9ICIiOworICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHsK KyAgICAgICAgICAgICAgLyogQ2xlYXIgdHJhaWxpbmcgd2hpdGVzcGFjZS4g ICovCisgICAgICAgICAgICAgIGNoYXIgKnB0ciA9IGFyZyArIHN0cmxlbiAo YXJnKSAtIDE7CisKKyAgICAgICAgICAgICAgd2hpbGUgKHB0ciA+PSBhcmcg JiYgKCpwdHIgPT0gJyAnIHx8ICpwdHIgPT0gJ1x0JykpCisgICAgICAgICAg ICAgICAgcHRyLS07CisgICAgICAgICAgICAgICoocHRyICsgMSkgPSAnXDAn OworICAgICAgICAgICAgfQogCSAgaWYgKCooY2hhciAqKikgYy0+dmFyICE9 IE5VTEwpCiAJICAgIHhmcmVlICgqKGNoYXIgKiopIGMtPnZhcik7CiAJICAq KGNoYXIgKiopIGMtPnZhciA9IHhzdHJkdXAgKGFyZyk7CkBAIC0xOTMsMTYg KzE5NiwxNyBAQCBkb19zZXRzaG93X2NvbW1hbmQgKGNoYXIgKmFyZywgaW50 IGZyb21fCiAJY2FzZSB2YXJfZmlsZW5hbWU6CiAJICBpZiAoYXJnID09IE5V TEwpCiAJICAgIGVycm9yX25vX2FyZyAoXygiZmlsZW5hbWUgdG8gc2V0IGl0 IHRvLiIpKTsKKyAgICAgICAgICBlbHNlCisgICAgICAgICAgICB7CisgICAg ICAgICAgICAgIC8qIENsZWFyIHRyYWlsaW5nIHdoaXRlc3BhY2UuICAqLwor ICAgICAgICAgICAgICBjaGFyICpwdHIgPSBhcmcgKyBzdHJsZW4gKGFyZykg LSAxOworCisgICAgICAgICAgICAgIHdoaWxlIChwdHIgPj0gYXJnICYmICgq cHRyID09ICcgJyB8fCAqcHRyID09ICdcdCcpKQorICAgICAgICAgICAgICAg IHB0ci0tOworICAgICAgICAgICAgICAqKHB0ciArIDEpID0gJ1wwJzsKKyAg ICAgICAgICAgIH0KIAkgIGlmICgqKGNoYXIgKiopIGMtPnZhciAhPSBOVUxM KQogCSAgICB4ZnJlZSAoKihjaGFyICoqKSBjLT52YXIpOwotCSAgewotCSAg ICAvKiBDbGVhciB0cmFpbGluZyB3aGl0ZXNwYWNlIG9mIGZpbGVuYW1lLiAg Ki8KLQkgICAgY2hhciAqcHRyID0gYXJnICsgc3RybGVuIChhcmcpIC0gMTsK LQotCSAgICB3aGlsZSAocHRyID49IGFyZyAmJiAoKnB0ciA9PSAnICcgfHwg KnB0ciA9PSAnXHQnKSkKLQkgICAgICBwdHItLTsKLQkgICAgKihwdHIgKyAx KSA9ICdcMCc7Ci0JICB9CiAJICAqKGNoYXIgKiopIGMtPnZhciA9IHRpbGRl X2V4cGFuZCAoYXJnKTsKIAkgIGJyZWFrOwogCWNhc2UgdmFyX2Jvb2xlYW46 Cg== --bcaec520ea43e9428a04add1c352--