This is the mail archive of the newlib@sourceware.org mailing list for the newlib 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] | |
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 10/23/2013 12:05 PM, Corinna Vinschen wrote: > On Oct 21 13:35, Corinna wrote: >> Here's my Proposal: >> >> We introduce a new define called _READ_WRITE_BUFSIZE_TYPE. It is >> used as the type of the `count' parameter for the _read and >> _write methods in struct __sFILE. It's set to int by default for >> backward compatibility. Interested targets can set it to the more >> correct size_t in include/sys/config.h. I've noticed another detail in fvwrite.h: while in struct __siov the buffer length is (correctly) a size_t, the field uio_resid in struct __suio, which is meant to be the sum of the size of all buffers is still an int. This breaks fwrite() of > 2GByte buffers. Attached is a patch that simply makes uio_resid a size_t. Since fvwrite.h is a private header, I don't think there's any binary compatibility issue. 2013-10-31 Terraneo Federico <fede.tft@hotmail.it> * libc/stdio/fvwrite.h: change type of uio_resid from int to size_t to fix fwrite() of > 2GByte buffers -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQEcBAEBAgAGBQJScimNAAoJECkLFtN5Xr9fbVwH/A8KfS8WTJvsJwFT4tDm6P8x OeGkQtHcbYQDLheg4HHkTvrsNt5IsZAFDtBnDWjfQ9+r/SMYx64CxZWFozRiGgMA xYomzYzx7pSAH9MfjvpWXKSK/x95ICLikfhVmuZWFHG9/ysCvBty2k7L2HJiBihv RFrE5EDqcSeRpVGMFoqqJmBgAdqQ3wAQ0TpQTA4R7YlpJF29B3ltPdJVstNwQYVE WcQj4ijwfJ9EWpA9662OIKGVQWwucbmTuklNkTQWSWoqoKe/27r5VRBSBsVb+SBS gfBWm/buzaXpLfZCSkz+8OpTubfhq/wkfUz1m9tfjbEgBrtyslhVRtjTizY362w= =I+Qc -----END PGP SIGNATURE-----
diff -ruN a/newlib/libc/stdio/fvwrite.h b/newlib/libc/stdio/fvwrite.h
--- a/newlib/libc/stdio/fvwrite.h 2007-03-15 19:40:48.000000000 +0100
+++ b/newlib/libc/stdio/fvwrite.h 2013-10-31 09:33:43.917907668 +0100
@@ -28,7 +28,7 @@
struct __suio {
struct __siov *uio_iov;
int uio_iovcnt;
- int uio_resid;
+ size_t uio_resid;
};
Attachment:
uio_resid.patch.sig
Description: Binary data
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |