Hi, Jeremy,
Thanks for reading VBox source code, but the lowercase or upper case doesn't
meter here, it's easy to check with gdb
(gdb) p /x ('A' - '0' + 10) & 0xf
$2 = 0xb
(gdb) p /x ('a' - '0' + 10) & 0xf
$3 = 0xb
And looks like they are both incorrect, should be
(gdb) p /x ('A' - '0' + 9) & 0xf
$5 = 0xa
On Feb 9, 2012, at 8:26 AM, Jeremy Jackson wrote:
> I believe the HEX_2_NUM is incorrect, and should be converting lowercase hex
> values, since NUM_2_HEX creates lowercase hex values.
>
> I have pasted the output of my patch:
>
> ~/code/vbox/src $ cat patch.diff
> Index: VBox/Storage/ISCSI.cpp
> ===================================================================
> --- VBox/Storage/ISCSI.cpp (revision 40038)
> +++ VBox/Storage/ISCSI.cpp (working copy)
> @@ -51,7 +51,7 @@
> /** Converts a number in the range of 0 - 15 into the corresponding hex
> char. */
> #define NUM_2_HEX(b) ('0' + (b) + (((b) > 9) ? 39 : 0))
> /** Converts a hex char into the corresponding number in the range 0-15. */
> -#define HEX_2_NUM(c) (((c) <= '9') ? ((c) - '0') : (((c - 'A' + 10) & 0xf)))
> +#define HEX_2_NUM(c) (((c) <= '9') ? ((c) - '0') : (((c - 'a' + 10) & 0xf)))
> /* Converts a base64 char into the corresponding number in the range 0-63. */
> #define B64_2_NUM(c) ((c >= 'A' && c <= 'Z') ? (c - 'A') : (c >= 'a' && c <=
> 'z') ? (c - 'a' + 26) : (c >= '0' && c <= '9') ? (c - '0' + 52) : (c == '+')
> ? 62 : (c == '/') ? 63 : -1)
> _______________________________________________
> vbox-dev mailing list
> [email protected]
> https://www.virtualbox.org/mailman/listinfo/vbox-dev
_______________________________________________
vbox-dev mailing list
[email protected]
https://www.virtualbox.org/mailman/listinfo/vbox-dev