From 1b70351bf7892e34bc56b7ad1ea1b1d7ddfa4cf1 Mon Sep 17 00:00:00 2001 From: Daniele Forsi IU5HKX Date: Wed, 13 Aug 2025 14:25:54 +0200 Subject: [PATCH] Fix segfault with set_parm KEYERTYPE Steps to reproduce: tests/rigctl -m 1 \ set_parm KEYERTYPE BUG Fixes: Thread 1 "rigctl" received signal SIGSEGV, Segmentation fault. __strlen_sse2 () at ../sysdeps/x86_64/multiarch/strlen-sse2.S:142 warning: 142 ../sysdeps/x86_64/multiarch/strlen-sse2.S: File o directory non esistente (gdb) bt #0 __strlen_sse2 () at ../sysdeps/x86_64/multiarch/strlen-sse2.S:142 #1 0x00007ffac346e300 in __printf_buffer (buf=buf@entry=0x7ffc3bcf40d0, format=0x7ffac38aef17 "%s", ap=0x7ffc3bcf4190, mode_flags=0) at ./stdio-common/vfprintf-process-arg.c:435 #2 0x00007ffac3491daf in __vsnprintf_internal (string=, maxlen=, format=, args=args@entry=0x7ffc3bcf4190, mode_flags=mode_flags@entry=0) at ./libio/vsnprintf.c:96 #3 0x00007ffac3469642 in __GI___snprintf (s=s@entry=0x7ffc3bcf4290 "", maxlen=maxlen@entry=32, format=format@entry=0x7ffac38aef17 "%s") at ./stdio-common/snprintf.c:31 #4 0x00007ffac370b7b9 in dummy_set_parm (rig=0x558fe1991b20, parm=2048, val=...) at dummy.c:1704 #5 0x0000558fb536afbe in rigctl_set_parm (rig=0x558fe1991b20, fout=0x7ffac35f25c0 <_IO_2_1_stdout_>, fin=, interactive=, prompt=, vfo_opt=, send_cmd_term=13 '\r', ext_resp=0, resp_sep=10 '\n', cmd=0x558fb5388000 , vfo=536870912, arg1=0x7ffc3bcf4e10 "KEYERTYPE", arg2=0x558fb537fdb1 "1", arg3=0x558fb537ece8 "") at rigctl_parse.c:3829 #6 0x0000558fb53727d6 in rigctl_parse (my_rig=, fin=, fout=, argv=argv@entry=0x7ffc3bcf6fd8, argc=argc@entry=3, sync_cb=sync_cb@entry=0x0, interactive=, prompt=, vfo_opt=, send_cmd_term=, ext_resp_ptr=, resp_sep_ptr=, use_password=) at rigctl_parse.c:1847 #7 0x0000558fb535cadc in main (argc=, argv=0x7ffc3bcf6fd8) at rigctl.c:801 (cherry picked from commit 12ba55834370d0b314079f6a67983c11bb26a3b9) --- tests/rigctl_parse.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/rigctl_parse.c b/tests/rigctl_parse.c index f67d7d179..79475a8ac 100644 --- a/tests/rigctl_parse.c +++ b/tests/rigctl_parse.c @@ -3794,11 +3794,13 @@ declare_proto_rig(set_parm) } else if (RIG_PARM_IS_STRING(parm)) { +#if 0 if (parm == RIG_PARM_KEYERTYPE) { val.i = atoi(arg2); } else +#endif { val.cs = arg2; }