[PATCH] dosfs: Unsigned compared against 0
Ralf Kirchner
ralf.kirchner at embedded-brains.de
Tue Sep 10 08:56:23 UTC 2013
Hi Gedare,
Please find the patch against the current master head attached.
Kind Regards
Ralf Kirchner
Am 06.09.2013 18:53, schrieb Gedare Bloom:
> OK. Can you send the patch against the current master head (rather
> than revert)? I am not able to commit today, but maybe someone else
> can.
>
> -Gedare
>
> On Fri, Sep 6, 2013 at 12:46 PM, Ralf Kirchner
> <ralf.kirchner at embedded-brains.de> wrote:
>> Hi Gedare,
>> Iconv() does not return any negative values. It returns "(size_t)-1" in
>> case of an error and the number of non-reversibly converted characters
>> in case of success.
>>
>> Thus please revert to size_t for the return value type and in addition
>> apply this patch:
>>
>> ---
>> cpukit/libfs/src/dosfs/msdos_conv_utf8.c | 11 ++++++++---
>> 1 Datei geändert, 8 Zeilen hinzugefügt(+), 3 Zeilen entfernt(-)
>>
>> diff --git a/cpukit/libfs/src/dosfs/msdos_conv_utf8.c
>> b/cpukit/libfs/src/dosfs/msdos_conv_utf8.c
>> index 18aebc6..6760d2e 100644
>> --- a/cpukit/libfs/src/dosfs/msdos_conv_utf8.c
>> +++ b/cpukit/libfs/src/dosfs/msdos_conv_utf8.c
>> @@ -69,10 +69,15 @@ static int msdos_utf8_convert_with_iconv(
>>
>> *dst_size -= outbytes_left;
>>
>> - if ( iconv_status > 0 ) {
>> - eno = EINVAL;
>> - } else if ( iconv_status < 0 ) {
>> + if ( iconv_status == (size_t)-1 ) {
>> + /* iconv() has detected an error. The most likely reason seems to +
>> be a too small outbuf */
>> eno = ENOMEM;
>> + } else if ( iconv_status > 0 ) {
>> + /* iconv_status contains the number of characters converted in a +
>> non-reversible way.
>> + We want to use reversible conversions only.
>> + Characters permitted within DOSFS names seem to be reversible. */
>> + eno = EINVAL;
>> }
>>
>> return eno;
>> --
>> 1.7.10.4
>>
>> Am 05.09.2013 19:18, schrieb Gedare Bloom:
>>> On Thu, Sep 5, 2013 at 1:17 PM, Gedare Bloom <gedare at rtems.org> wrote:
>>>> Change the type for storing the return from iconv to be signed.
>>>> ---
>>>> cpukit/libfs/src/dosfs/msdos_conv_utf8.c | 2 +-
>>>> 1 files changed, 1 insertions(+), 1 deletions(-)
>>>>
>>>> diff --git a/cpukit/libfs/src/dosfs/msdos_conv_utf8.c b/cpukit/libfs/src/dosfs/msdos_conv_utf8.c
>>>> index a80db7e..18aebc6 100644
>>>> --- a/cpukit/libfs/src/dosfs/msdos_conv_utf8.c
>>>> +++ b/cpukit/libfs/src/dosfs/msdos_conv_utf8.c
>>>> @@ -57,7 +57,7 @@ static int msdos_utf8_convert_with_iconv(
>>>> size_t outbytes_left = *dst_size;
>>>> char *inbuf = (void *) (uintptr_t) src;
>>>> char *outbuf = dst;
>>>> - size_t iconv_status;
>>>> + ssize_t iconv_status;
>>>>
>>>> iconv_status = iconv(
>>> Note that iconv returns a size_t. Perhaps the return value should be
>>> cast explicitly to make this clear. newlib returns (size_t)-1 in case
>>> of an error in iconv.
>>>
>>>> desc,
>>>> --
>>>> 1.7.1
>>>>
>>> _______________________________________________
>>> rtems-devel mailing list
>>> rtems-devel at rtems.org
>>> http://www.rtems.org/mailman/listinfo/rtems-devel
>>>
>>
>>
>> --
>> --------------------------------------------
>> Embedded Brains GmbH
>> Ralf Kirchner Dornierstr. 4
>> D-82178 Puchheim Germany
>> email: ralf.kirchner at embedded-brains.de
>> Phone: +49-89-18 94 741-17
>> Fax: +49-89-18 94 741-08
>>
>> Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
--
--------------------------------------------
Embedded Brains GmbH
Ralf Kirchner Dornierstr. 4
D-82178 Puchheim Germany
email: ralf.kirchner at embedded-brains.de
Phone: +49-89-18 94 741-17
Fax: +49-89-18 94 741-08
Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-dosfs-Correct-handling-of-iconv-return-value.patch
Type: text/x-patch
Size: 1494 bytes
Desc: not available
URL: <http://lists.rtems.org/pipermail/devel/attachments/20130910/f65e2d87/attachment-0001.bin>
More information about the devel
mailing list