]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Restore seperator values
authorMark Andrews <marka@isc.org>
Thu, 17 Oct 2024 01:03:22 +0000 (12:03 +1100)
committerMark Andrews <marka@isc.org>
Fri, 18 Oct 2024 01:24:32 +0000 (01:24 +0000)
strtok_r is destructive.  Restore the seperators so that the command
line can be properly displayed.

bin/dig/dig.c

index 288b327ef292802d4ccf21650d607d778f2fa68b..16b2de5e85e87186930b043357838f9ccc3b226a 100644 (file)
@@ -1827,6 +1827,9 @@ plus_option(char *option, bool is_batchfile, bool *need_clone,
                                                extra = strtok_r(NULL, "\0",
                                                                 &last);
                                                save_opt(lookup, code, extra);
+                                               if (extra != NULL) {
+                                                       extra[-1] = ':';
+                                               }
                                                break;
                                        default:
                                                goto invalid_option;
@@ -2555,6 +2558,9 @@ plus_option(char *option, bool is_batchfile, bool *need_clone,
                fprintf(stderr, "Invalid option: +%s\n", option);
                usage();
        }
+       if (value != NULL) {
+               value[-1] = '=';
+       }
        return (lookup);
 
 #if !TARGET_OS_IPHONE
@@ -2826,6 +2832,10 @@ dash_option(char *option, char *next, dig_lookup_t **lookup,
                /* XXXONDREJ: FIXME */
                strlcpy(keynametext, ptr, sizeof(keynametext));
                strlcpy(keysecret, ptr2, sizeof(keysecret));
+               if (ptr3 != NULL) {
+                       ptr[-1] = ':';
+               }
+               ptr2[-1] = ':';
                return (value_from_next);
        case 'x':
                if (*need_clone) {