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

Reply via email to