From: Dominik Csapak <d.csapak@proxmox.com>
To: Stefan Sterz <s.sterz@proxmox.com>,
Proxmox Backup Server development discussion
<pbs-devel@lists.proxmox.com>
Subject: Re: [pbs-devel] [PATCH proxmox-backup] tape: fix anchoring of datastore map regex
Date: Wed, 29 Mar 2023 13:54:55 +0200 [thread overview]
Message-ID: <7a52e4c5-c8ca-e9e9-8a62-3aaa5a1d38f0@proxmox.com> (raw)
In-Reply-To: <70fec0a4-ebc6-f3f6-cd2c-60bf13df4d01@proxmox.com>
On 3/29/23 13:50, Stefan Sterz wrote:
> On 3/29/23 12:06, Dominik Csapak wrote:
>> was missing. In practice it was not doing any harm, since we always
>> checked for an existing datastore with the target name anyway, and
>> if the source did not exists, we could not restore from that anyway.
>>
>> Both the source datastore on the tape, as well as the existing
>> datastores have to adhere to the correct regex.
>>
>> Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
>> ---
>> pbs-api-types/src/datastore.rs | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/pbs-api-types/src/datastore.rs b/pbs-api-types/src/datastore.rs
>> index 72e8d1ee..7f8c1f09 100644
>> --- a/pbs-api-types/src/datastore.rs
>> +++ b/pbs-api-types/src/datastore.rs
>> @@ -34,7 +34,7 @@ const_regex! {
>> pub SNAPSHOT_PATH_REGEX = concat!(r"^", SNAPSHOT_PATH_REGEX_STR!(), r"$");
>> pub GROUP_OR_SNAPSHOT_PATH_REGEX = concat!(r"^", GROUP_OR_SNAPSHOT_PATH_REGEX_STR!(), r"$");
>>
>> - pub DATASTORE_MAP_REGEX = concat!(r"(:?", PROXMOX_SAFE_ID_REGEX_STR!(), r"=)?", PROXMOX_SAFE_ID_REGEX_STR!());
>> + pub DATASTORE_MAP_REGEX = concat!(r"^(:?", PROXMOX_SAFE_ID_REGEX_STR!(), r"=)?", PROXMOX_SAFE_ID_REGEX_STR!(), r"$");
>
> small question: should the `(:?` be a non-capturing group (`(?:`) here
> instead? or am i missing something? afaict this would allow colons at
> the beginning of the source datastore, creating a similar problem as was
> fixed here, i'd assume.
yep, you're right, should be '(?:' instead
at least 2 other regex also have this wrong:
----
pub BLOCKDEVICE_NAME_REGEX = r"^(:?(:?h|s|x?v)d[a-z]+)|(:?nvme\d+n\d+)$";
----
and
----
pub TAPE_RESTORE_SNAPSHOT_REGEX = concat!(r"^", PROXMOX_SAFE_ID_REGEX_STR!(), r"
----
will send a patch...
>
>> }
>>
>> pub const CHUNK_DIGEST_FORMAT: ApiStringFormat = ApiStringFormat::Pattern(&SHA256_HEX_REGEX);
>
next prev parent reply other threads:[~2023-03-29 11:55 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-29 10:06 Dominik Csapak
2023-03-29 10:08 ` Thomas Lamprecht
2023-03-29 11:50 ` Stefan Sterz
2023-03-29 11:54 ` Dominik Csapak [this message]
2023-03-29 12:07 ` Thomas Lamprecht
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7a52e4c5-c8ca-e9e9-8a62-3aaa5a1d38f0@proxmox.com \
--to=d.csapak@proxmox.com \
--cc=pbs-devel@lists.proxmox.com \
--cc=s.sterz@proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.