On 5/12/20 4:39 AM, Eyal Moscovici wrote:
+++ b/qemu-img.c
@@ -4307,7 +4307,7 @@ static int img_bench(int argc, char **argv)
             int64_t sval;
              sval = cvtnum(optarg);
-Â Â Â Â Â Â Â Â Â Â Â if (sval < 0 || sval > INT_MAX) {
+Â Â Â Â Â Â Â Â Â Â Â if (sval < 0) {
                 error_report("Invalid buffer size
specified");
INT_MAX is smaller than cvtnum's check for INT64_MAX. This code
change allows larger buffer sizes, which is probably not a good idea.
I was the most hesitant about this patch because of the size difference.
I decided to submit it because the type is int64 which pairs better with
the MAX_INT64 check and I couldn't find a concrete reason to cap the
variable at MAX_INT. Do you a concrete reason? Because the max size
should rerally come into effect on very fringe cases and if you are
asking for a really big buffer you should know the risks.
The commit message does not call out a change in behavior. If you are
sure that you want a change in behavior, then justify that: mention that
your patch specifically changes the behavior to allow larger buffers,
and why that is okay. Otherwise, it looks like your patch is accidental
in its behavior change, which costs reviewer time.
In this particular case, I see no reason to allow larger buffers. That
is, the existing limits made sense (benchmarking anything larger than
the maximum qcow2 cluster size of 2M is unlikely to produce useful
results, let alone something as large as 2G, so allowing > 2G is not
helping the user). So even if your commit message did a good job of
explaining that the change was intentional, it is a tough sell why we
need it. If all your commit is intended to do is refactoring, then it
should not be changing behavior.
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3226
Virtualization: qemu.org | libvirt.org