|
From: | Anthony Liguori |
Subject: | Re: [Qemu-devel] [PATCH] qemu: json: Fix parsing of integers >= 0x8000000000000000 |
Date: | Mon, 23 May 2011 08:33:03 -0500 |
User-agent: | Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.17) Gecko/20110424 Lightning/1.0b2 Thunderbird/3.1.10 |
On 05/23/2011 08:04 AM, Daniel P. Berrange wrote:
On Fri, May 20, 2011 at 01:11:05PM -0500, Anthony Liguori wrote:On 05/20/2011 01:03 PM, Richard W.M. Jones wrote:There seem to be a few unsafe uses of strto* functions. This patch just fixes the one that affects me :-)Sending an integer of this size is not valid JSON. Your patch won't accept negative numbers, correct? JSON only supports int64_t.That's not really true. JSON supports arbitrarily large numbers & integers.
Try the following snippet in your browser: <html> <head> <script type="text/javascript"> alert(9223372036854775807); </script> </head> </html> The actual value of the alert will surprise you :-)Integers in Javascript are actually represented as doubles internally which means that integer constants are only accurate up to 52 bits.
So really, we should cap integers at 32-bit :-/ Have I mentioned recently that I really dislike JSON... Regards, Anthony Liguori
[Prev in Thread] | Current Thread | [Next in Thread] |