Casey Marshall wrote: > Our usage of `readdir' wasn't portable: on Darwin, you get a NULL return > value, but `errno' will be zero. We were expecting errno to be nonzero > in that case. > > This had the side effect that we'd keep reallocating the filename array, > because we'd be looping on the same value for `filename', and this would > exhaust memory. > > I also took the liberty of adding a check for readdir_r, and use it in > cpio_readDir if it is available. > > 2006-09-22 Casey Marshall <[EMAIL PROTECTED]> > > * configure.ac (AC_CHECK_FUNCS): check for `readdir_r.' > * native/jni/java-io/java_io_VMFile.c (Java_java_io_VMFile_list): > allocate `filename,' and handle changes to `cpio_readDir.' > * native/jni/native-lib/cpio.c (cpio_readDir): use `readdir_r' if > available; copy the filename into the destination buffer; return > an error code if readdir returns NULL, but errno is 0. > * native/jni/native-lib/cpio.h (cpio_readDir): change second > parameter to `const char *.' >
Yup, this code introduced warnings. Fixed with this: 2006-09-22 Casey Marshall <[EMAIL PROTECTED]> * native/jni/java-io/java_io_VMFile.c (Java_java_io_VMFile_list): remove `const' from `filename.' * native/jni/native-lib/cpio.c (cpio_readDir): remove `const' from `filename.' * native/jni/native-lib/cpio.h (cpio_readDir): likewise.