[PATCH] dosfs: Unsigned compared against 0
Gedare Bloom
gedare at rtems.org
Fri Sep 6 16:53:50 UTC 2013
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.
More information about the devel
mailing list