This is the mail archive of the ecos-maintainers@sourceware.org mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Bugs in vfscanf.cxx(eCos)


Problem:
    vfscanf have problem to deal with string in utf-8 format.
Analyze:
    In function:
        externC int
            vfscanf (FILE *fp, const char *fmt0, va_list ap) __THROW {
                    u_char *fmt = (u_char *) fmt0;

        It declared that:
            char ccltab[256];
            char curr_byte;
        When a byte's highest bit(the sign bit) is set, doing the
following conversion:
            (int)*CURR_POS
        it surely will generates an integer that is larger than 256(
Recall, signed bit extension).
        While try to combine it with:
            ccltab[(int)*CURR_POS])
        a fairly bug yields.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]