GNU bug report logs - #34769
Bug in emacs 26.1 gdb-send match-string applied after non-matching string-match

Previous Next

Package: emacs;

Reported by: Tobias Zawada <i_inbox <at> tn-home.de>

Date: Wed, 6 Mar 2019 15:59:01 UTC

Severity: normal

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Tobias Zawada <i_inbox <at> tn-home.de>
Subject: bug#34769: closed (Re: bug#34769: Bug in emacs 26.1 gdb-send
 match-string applied after non-matching string-match)
Date: Thu, 07 Mar 2019 15:19:02 +0000
[Message part 1 (text/plain, inline)]
Your bug report

#34769: Bug in emacs 26.1 gdb-send match-string applied after non-matching string-match

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to 34769 <at> debbugs.gnu.org.

-- 
34769: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=34769
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Eli Zaretskii <eliz <at> gnu.org>
To: Tobias Zawada <i_inbox <at> tn-home.de>
Cc: 34769-done <at> debbugs.gnu.org
Subject: Re: bug#34769: Bug in emacs 26.1 gdb-send match-string applied
 after non-matching string-match
Date: Thu, 07 Mar 2019 17:18:20 +0200
> Date: Wed, 6 Mar 2019 21:10:54 +0100 (CET)
> From: Tobias Zawada <i_inbox <at> tn-home.de>
> Cc: 34769 <at> debbugs.gnu.org
> 
> Dear Eli,
> thanks for looking into this.
> 
> > > It is wrong to call (match-string 3 string) if (string-match gdb-control-commands-regexp string) returned nil.
> > ...
> > That is true, and a cleanup is a good idea. But please note that the
> > undefined results are not used if control-command-p is nil, so the
> > issue is not that serious.
> 
> The match data is that one of the previous successful matching operation.
> One gets an args-out-of-range signal if the indexes in the match data are larger than the width of the string argument to match-string. That is how I discovered the error.

You are right; I've now fixed this on the emacs-26 branch.

[Message part 3 (message/rfc822, inline)]
From: Tobias Zawada <i_inbox <at> tn-home.de>
To: bug-gnu-emacs <at> gnu.org
Subject: Bug in emacs 26.1 gdb-send match-string applied after non-matching
 string-match
Date: Wed, 6 Mar 2019 12:27:03 +0100 (CET)
Dear Emacs maintainers,

At the end of gdb-send one finds the following lines:

  (let* ((control-command-p (string-match gdb-control-commands-regexp string))
         (command-arg (match-string 3 string))

It is wrong to call (match-string 3 string) if (string-match gdb-control-commands-regexp string) returned nil.
The doc of match-string says:
"Return string of text matched by last search."
That means match-string only returns sensible results if the last match was successful.

Possible correction:

  (let* ((control-command-p (string-match gdb-control-commands-regexp string))
         (command-arg (and control-command-p (match-string 3 string)))


System info:
GNU Emacs 26.1 (build 2, x86_64-pc-linux-gnu, GTK+ Version 3.22.30) of 2018-05-29

Best regards,
Tobias



This bug report was last modified 6 years and 82 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.