On 12/22/2017 01:07 PM, Markus Armbruster wrote:
Eric Blake <[email protected]> writes:

On 12/19/2017 08:20 AM, Max Reitz wrote:

So there are three things:

(1) We probably should not allow snapshot names that could be IDs.
Easiest way to solve this: Names have to start with a non-digit.
Yes, that would be a nice change.  It is not strictly backwards
compatible (so we'd still have to cope with images that didn't follow
the rule, whether created by older qemu or by non-qemu implementations
of qcow2), but would alleviate a lot of confusion.
I recommend to restrict ID strings to letters, digits, '-', '.', '_',
starting with a letter.  Use id_wellformed() to check.
char *id_generate(IdSubSystems id) autogenates ID in the format eg- "#block146" with starting with '#' always. restricting ID strings to use id_wellformed() means we need to force ID to start with letter.

#define ID_SPECIAL_CHAR '#' needs to change to (some letter)
#define ID_SPECIAL_CHAR 'A'


If backward compatibility is an issue, deprecate offending IDs (with a
suitable warning), and kill them off after the customary grace period.

IDs embedded in image files and such you may have to keep working
somehow indefinitely.


Reply via email to