Platform is Debian squeeze (approximately) on amd64 with gcc 4.6. This started after 7.34 and I confirmed it's present in 7.37 as well.
Problem: configuring a 32-bit build on a 64-bit system results in a disagreement between the curl_off_t type and it's detected format string. 'int64_t' will be the type, but 'ld'/'lu' will be the format string. This causes the varargs processing in mprintf.c to get out-of-sync and crashes result. The main victim of this is the large progress fprintf() in progress.c. 64-bit on 64-bit configuration: $ ./configure --disable-ldap --disable-ldaps \ --enable-shared=no --enable-threaded-resolver --enable-debug \ --disable-optimize ithout-libssh2 checking size of long... 8 checking size of void*... 8 checking for 64-bit curl_off_t data type... long checking size of curl_off_t... 8 checking formatting string directive for curl_off_t... "ld" checking formatting string directive for unsigned curl_off_t... "lu" checking constant suffix string for curl_off_t... L checking constant suffix string for unsigned curl_off_t... UL 32-bit on 64-bit configuration: $ CFLAGS="-m32" CXXFLAGS="-m32" ./configure \ --disable-ldap --disable-ldaps \ --enable-shared=no --enable-threaded-resolver --enable-debug \ --disable-optimize --without-libssh2 checking size of long... 4 checking size of void*... 4 checking for 64-bit curl_off_t data type... int64_t <<< checking size of curl_off_t... 8 checking formatting string directive for curl_off_t... "ld" <<< checking formatting string directive for unsigned curl_off_t... "lu" <<< checking constant suffix string for curl_off_t... LL checking constant suffix string for unsigned curl_off_t... ULL Now, the autoconf for this is still a bit impenetrable to me so I haven't come up with a workaround yet. (Defensive programming issue: max5data() can get a negative number in curl_off_t which can result in a print that exceeds its buffer length assumptions. Might take some action against this.) m -- Monty Brandenberg, Software Engineer MCB, Inc. [email protected] P.O. Box 425292 [email protected] Cambridge, MA 02142-0006 617.864.6907 ------------------------------------------------------------------- List admin: http://cool.haxx.se/list/listinfo/curl-library Etiquette: http://curl.haxx.se/mail/etiquette.html
