groff-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[groff] 10/14: [troff]: Emit error if -d, -r argument malformed.


From: G. Branden Robinson
Subject: [groff] 10/14: [troff]: Emit error if -d, -r argument malformed.
Date: Mon, 19 Jul 2021 14:36:17 -0400 (EDT)

gbranden pushed a commit to branch master
in repository groff.

commit 7b142b5159869ec390188ce365ad5d779f1a7813
Author: G. Branden Robinson <g.branden.robinson@gmail.com>
AuthorDate: Mon Jul 19 08:20:00 2021 +1000

    [troff]: Emit error if -d, -r argument malformed.
    
    * src/roff/troff/input.cpp (main): Emit error diagnostic if `-d` or `-r`
      option is given a malformed argument.  This prevents a string or
      register with an empty name from being created.
    
    Fixes <https://savannah.gnu.org/bugs/?60935>.
---
 ChangeLog                | 8 ++++++++
 src/roff/troff/input.cpp | 6 ++++++
 2 files changed, 14 insertions(+)

diff --git a/ChangeLog b/ChangeLog
index d31b885..a0f733d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
 2021-07-19  G. Branden Robinson <g.branden.robinson@gmail.com>
 
+       * src/roff/troff/input.cpp (main): Emit error diagnostic if `-d`
+       or `-r` option is given a malformed argument.  This prevents a
+       string or register with an empty name from being created.
+
+       Fixes <https://savannah.gnu.org/bugs/?60935>.
+
+2021-07-19  G. Branden Robinson <g.branden.robinson@gmail.com>
+
        * src/roff/nroff/nroff.sh:
        * src/roff/troff/input.cpp (usage): Use "dev" as metasyntactic
        variable name for -T option argument to achieve consistency with
diff --git a/src/roff/troff/input.cpp b/src/roff/troff/input.cpp
index 92279ea..13c4efa 100644
--- a/src/roff/troff/input.cpp
+++ b/src/roff/troff/input.cpp
@@ -8078,12 +8078,18 @@ int main(int argc, char **argv)
     case 'd':
       if (*optarg == '\0')
        error("'-d' requires non-empty argument");
+      else if (*optarg == '=')
+       error("malformed argument to '-d'; string name cannot be empty"
+             " or contain an equals sign");
       else
        add_string(optarg, &string_assignments);
       break;
     case 'r':
       if (*optarg == '\0')
        error("'-r' requires non-empty argument");
+      else if (*optarg == '=')
+       error("malformed argument to '-r'; register name cannot be"
+             " empty or contain an equals sign");
       else
        add_string(optarg, &register_assignments);
       break;



reply via email to

[Prev in Thread] Current Thread [Next in Thread]