The branch stable/13 has been updated by cy:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=2bd84a3d19e7603bef56a4b5c2e18ff969df3ab6

commit 2bd84a3d19e7603bef56a4b5c2e18ff969df3ab6
Author:     Cy Schubert <c...@freebsd.org>
AuthorDate: 2022-07-14 04:42:06 +0000
Commit:     Cy Schubert <c...@freebsd.org>
CommitDate: 2022-07-22 13:03:03 +0000

    telnet: Fix telnet segfault when invalid set or help help commands
    
    Silently ignore invalid set ' ' and invalid help help commands.
    This is the same fix applied by NetBSD in hg commit 1019940:4f248823eaff.
    
    PR:             265097
    Reported by:    Simon Josefsson <si...@josefsson.org>
    Obtained from:  NetBSD hg commit 1019940:4f248823eaff
                    NetBSD PR/56918
    
    (cherry picked from commit a7399ea2dd7810e76dcfd52248764cb8004d49a4)
---
 contrib/telnet/telnet/commands.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/contrib/telnet/telnet/commands.c b/contrib/telnet/telnet/commands.c
index 21e973209d9b..fd4597941724 100644
--- a/contrib/telnet/telnet/commands.c
+++ b/contrib/telnet/telnet/commands.c
@@ -938,7 +938,7 @@ setcmd(int argc, char *argv[])
     }
 
     ct = getset(argv[1]);
-    if (ct == 0) {
+    if (ct == 0 || !(ct->name && ct->name[0] != ' ')) {
        c = GETTOGGLE(argv[1]);
        if (c == 0) {
            fprintf(stderr, "'%s': unknown argument ('set ?' for help).\n",
@@ -1014,7 +1014,7 @@ unsetcmd(int argc, char *argv[])
     while (argc--) {
        name = *argv++;
        ct = getset(name);
-       if (ct == 0) {
+       if (ct == 0 || !(ct->name && ct->name[0] != ' ')) {
            c = GETTOGGLE(name);
            if (c == 0) {
                fprintf(stderr, "'%s': unknown argument ('unset ?' for 
help).\n",
@@ -2694,7 +2694,7 @@ help(int argc, char *argv[])
                        printf("?Ambiguous help command %s\n", arg);
                else if (c == (Command *)0)
                        printf("?Invalid help command %s\n", arg);
-               else
+               else if (c->help)
                        printf("%s\n", c->help);
        }
        return 0;

Reply via email to