Message ID | 1335474606-22889-3-git-send-email-lcapitulino@redhat.com |
---|---|
State | New |
Headers | show |
On 04/26/2012 03:10 PM, Luiz Capitulino wrote: > The M type converts from megabytes to bytes. However, the value can be > negative before the conversion, which will lead to a flawed conversion. > > For example, this: > > (qemu) balloon -1000000000000011 > (qemu) > > Just "works", but the value passed by the balloon command will be > something else. > > This patch fixes this problem by requering a positive value before > converting. There's really no reason to accept a negative value for > the M type. > > Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> > --- > monitor.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/monitor.c b/monitor.c > index 6178f48..2ea1536 100644 > --- a/monitor.c > +++ b/monitor.c > @@ -3624,6 +3624,10 @@ static const mon_cmd_t *monitor_parse_command(Monitor *mon, > monitor_printf(mon, "integer is for 32-bit values\n"); > goto fail; > } else if (c == 'M') { > + if (val < 0) { > + monitor_printf(mon, "enter a positive value\n"); > + goto fail; > + } Reviewed-by: Eric Blake <eblake@redhat.com>
diff --git a/monitor.c b/monitor.c index 6178f48..2ea1536 100644 --- a/monitor.c +++ b/monitor.c @@ -3624,6 +3624,10 @@ static const mon_cmd_t *monitor_parse_command(Monitor *mon, monitor_printf(mon, "integer is for 32-bit values\n"); goto fail; } else if (c == 'M') { + if (val < 0) { + monitor_printf(mon, "enter a positive value\n"); + goto fail; + } val <<= 20; } qdict_put(qdict, key, qint_from_int(val));
The M type converts from megabytes to bytes. However, the value can be negative before the conversion, which will lead to a flawed conversion. For example, this: (qemu) balloon -1000000000000011 (qemu) Just "works", but the value passed by the balloon command will be something else. This patch fixes this problem by requering a positive value before converting. There's really no reason to accept a negative value for the M type. Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> --- monitor.c | 4 ++++ 1 file changed, 4 insertions(+)