From: Eric Bollengier Date: Tue, 15 Jun 2021 08:33:36 +0000 (+0200) Subject: Fix #7806 Add ':_-.' to allowed tag characters X-Git-Tag: Release-11.3.2~487 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c70b5d0453e9907952336d84a870578aee375f56;p=thirdparty%2Fbacula.git Fix #7806 Add ':_-.' to allowed tag characters --- diff --git a/bacula/src/dird/ua_cmds.c b/bacula/src/dird/ua_cmds.c index 050771b5e..ed16f9a83 100644 --- a/bacula/src/dird/ua_cmds.c +++ b/bacula/src/dird/ua_cmds.c @@ -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; }