Skip to content
Snippets Groups Projects
Commit 016d49f5 authored by Karsten Loesing's avatar Karsten Loesing
Browse files

Fix a bug in recognizing bandwidth files.

We're using a regular expression on the first 100 characters of a
descriptor to recognize bandwidth files. More specifically, if a
descriptor starts with ten digits followed by a newline, we parse it
as a bandwidth file. (This is ugly, but the legacy bandwidth file
format doesn't give us much of a choice.)

This regular expression is broken. The regular expression we want is
one that matches the first 100 characters of a descriptor, which ours
didn't do.

More detailed explanation of the code change:

 - We don't need to start the pattern with `^`, because the regular
   expression needs to match the whole string anyway.
 - The `(?s)` part enables the dotall mode: "In dotall mode, the
   expression . matches any character, including a line terminator. By
   default this expression does not match line terminators. Dotall
   mode can also be enabled via the embedded flag expression (?s).
   (The s is a mnemonic for "single-line" mode, which is what this is
   called in Perl.)"
 - We need to end the pattern with `.*` to match any characters
   following the first newline, which also includes newlines due to
   the previously enabled dotall mode.

Fixes #30369.
parent 492ef35d
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment