Mikulas Patocka wrote:
Hi

I ripped regexp library from FreeBSD 4 and use it in another program. I
get random crashes because the library casts char to int and uses it as
array index ... the most obvious case is engine.i:189:
register char *dp;
dp += charjump[(int)*dp];
but there are many more and I'm unable to spot them all.

When i compile library with -funsigned-char, it works fine. But it isn't
compiled with that flag in FreeBSD.

Mikulas,


Could you verify that programs in FreeBSD 4
crash because of this?  That would provide
incentive to get it fixed.

One easy fix, by the way, is:

dp += charjump[(int)(unsigned char)*dp];

For what it's worth, the code probably isn't assuming
unsigned characters; it's probably assuming ASCII.  ;-)

Tim Kientzle

_______________________________________________
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to