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.kirch...@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 <ged...@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@rtems.org >> http://www.rtems.org/mailman/listinfo/rtems-devel >> > > > -- > -------------------------------------------- > Embedded Brains GmbH > Ralf Kirchner Dornierstr. 4 > D-82178 Puchheim Germany > email: ralf.kirch...@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. _______________________________________________ rtems-devel mailing list rtems-devel@rtems.org http://www.rtems.org/mailman/listinfo/rtems-devel