From 26c67d7e442b86e88fbbaee6e10d3710c6abe8d5 Mon Sep 17 00:00:00 2001 From: Andy Shevchenko Date: Mon, 24 May 2010 14:33:27 -0700 Subject: [PATCH] --- yaml --- r: 198310 b: refs/heads/master c: 91f06e66805dd94825885b3ec392c693fe9ef4d9 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/fs/partitions/ldm.c | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/[refs] b/[refs] index 1f40bcfb4fe5..c1e55e6cd758 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 1356de06cea80ffc84cde6a4f8779414f20f211e +refs/heads/master: 91f06e66805dd94825885b3ec392c693fe9ef4d9 diff --git a/trunk/fs/partitions/ldm.c b/trunk/fs/partitions/ldm.c index 3ceca05b668c..648c9d8f3357 100644 --- a/trunk/fs/partitions/ldm.c +++ b/trunk/fs/partitions/ldm.c @@ -26,6 +26,7 @@ #include #include #include +#include #include "ldm.h" #include "check.h" #include "msdos.h" @@ -77,17 +78,16 @@ static int ldm_parse_hexbyte (const u8 *src) int h; /* high part */ - if ((x = src[0] - '0') <= '9'-'0') h = x; - else if ((x = src[0] - 'a') <= 'f'-'a') h = x+10; - else if ((x = src[0] - 'A') <= 'F'-'A') h = x+10; - else return -1; - h <<= 4; + x = h = hex_to_bin(src[0]); + if (h < 0) + return -1; /* low part */ - if ((x = src[1] - '0') <= '9'-'0') return h | x; - if ((x = src[1] - 'a') <= 'f'-'a') return h | (x+10); - if ((x = src[1] - 'A') <= 'F'-'A') return h | (x+10); - return -1; + h = hex_to_bin(src[1]); + if (h < 0) + return -1; + + return (x << 4) + h; } /**