[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <877eyov49l.fsf@devron>
Date: Tue, 01 Aug 2017 03:40:38 +0900
From: OGAWA Hirofumi <hirofumi@...l.parknet.co.jp>
To: Andy Shevchenko <andriy.shevchenko@...ux.intel.com>
Cc: linux-kernel@...r.kernel.org, Joe Perches <joe@...ches.com>
Subject: Re: [PATCH v5] vfat: Deduplicate hex2bin()
Andy Shevchenko <andriy.shevchenko@...ux.intel.com> writes:
> We may use hex2bin() instead of custom approach.
>
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@...ux.intel.com>
[...]
> + u8 hc[2];
Let's move this to following more local scope.
> if (utf8) {
> *outlen = utf8s_to_utf16s(name, len, UTF16_HOST_ENDIAN,
> @@ -532,31 +532,16 @@ xlate_to_uni(const unsigned char *name, int len, unsigned char *outname,
> if (escape && (*ip == ':')) {
u8 uc[2];
Here.
> if (i > len - 5)
> return -EINVAL;
[...]
> + fill = hex2bin(hc, ip + 1, 2);
> + if (fill)
> + return fill;
This should not use random errno (in this case, it is -1 (EPERM)).
> + *op++ = hc[1];
> + *op++ = hc[0];
Maybe, originally endian bug?
> ip += 5;
> i += 5;
> } else {
> - charlen = nls->char2uni(ip, len - i,
> - (wchar_t *)op);
> + charlen = nls->char2uni(ip, len - i, (wchar_t *)op);
> if (charlen < 0)
> return -EINVAL;
> ip += charlen;
I will send a modified patch.
Thanks.
--
OGAWA Hirofumi <hirofumi@...l.parknet.co.jp>
Powered by blists - more mailing lists