]> git.ipfire.org Git - thirdparty/bacula.git/commitdiff
Fix #7806 Add ':_-.' to allowed tag characters
authorEric Bollengier <eric@baculasystems.com>
Tue, 15 Jun 2021 08:33:36 +0000 (10:33 +0200)
committerEric Bollengier <eric@baculasystems.com>
Thu, 24 Mar 2022 08:03:02 +0000 (09:03 +0100)
bacula/src/dird/ua_cmds.c

index 050771b5e0347fc1990510d6a41a60cdaeb82643..ed16f9a831fe74c0b151e88a3cbb642d1dbb5f11 100644 (file)
@@ -1597,11 +1597,13 @@ class tag_mngt: public TAG_DBR
 public:
    int         action;          /* 1: create, 2: delete, 3: list, 0: nothing */
    int         target;          /* 1: client, 2: job, 3: volume */
+   const char *extra_chars;     /* Extra characters allowed */
 
    tag_mngt() {
       zero();
       action = 0;
       target = 0;
+      extra_chars = "#._-:";
    };
 
    int scan_command(UAContext *ua) {
@@ -1652,10 +1654,10 @@ public:
             JobId = str_to_uint64(ua->argv[i]);
             target = 2;
 
-         } else if (strcasecmp(ua->argk[i], NT_("name")) == 0 && is_name_valid(ua->argv[i], NULL, "#")) {
+         } else if (strcasecmp(ua->argk[i], NT_("name")) == 0 && is_name_valid(ua->argv[i], NULL, extra_chars)) {
             bstrncpy(Name, ua->argv[i], sizeof(Name));
 
-         } else if (strcasecmp(ua->argk[i], NT_("tag")) == 0 && is_name_valid(ua->argv[i], NULL, "#")) {
+         } else if (strcasecmp(ua->argk[i], NT_("tag")) == 0 && is_name_valid(ua->argv[i], NULL, extra_chars)) {
             bstrncpy(Name, ua->argv[i], sizeof(Name));
 
          } else if (strcasecmp(ua->argk[i], NT_("add")) == 0) {
@@ -1761,7 +1763,7 @@ int tag_cmd(UAContext *ua, const char *cmd)
          if (!get_cmd(ua, _("Enter the Tag value: "), false)) {
             return false;
          }
-         if (strlen(ua->cmd) > sizeof(t.Name)-1 || !is_name_valid(ua->cmd, NULL, "#")) {
+         if (strlen(ua->cmd) > sizeof(t.Name)-1 || !is_name_valid(ua->cmd, NULL, t.extra_chars)) {
             ua->error_msg(_("Invalid tag\n"));
             return false;
          }