You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by tr...@locus.apache.org on 2000/08/30 03:46:04 UTC
cvs commit: apache-2.0/src/ap ap_buckets_pipe.c
trawick 00/08/29 18:46:03
Modified: src/ap ap_buckets_pipe.c
Log:
Fix pipe_read() so that it doesn't return the address of its autodata
to the caller. Instead, return the address of the buffer allocated by
ap_bucket_make_heap().
Revision Changes Path
1.3 +5 -1 apache-2.0/src/ap/ap_buckets_pipe.c
Index: ap_buckets_pipe.c
===================================================================
RCS file: /home/cvs/apache-2.0/src/ap/ap_buckets_pipe.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ap_buckets_pipe.c 2000/08/25 22:18:14 1.2
+++ ap_buckets_pipe.c 2000/08/30 01:46:03 1.3
@@ -81,12 +81,16 @@
if ((rv = apr_read(bd->thepipe, buf, len)) != APR_SUCCESS) {
return rv;
}
- *str = buf;
if (*len > 0) {
l = *len;
a = ap_bucket_create_pipe(bd->thepipe);
+ /* XXX ap_bucket_make_heap() can decide not to copy all our data;
+ * either handle it here or ensure that IOBUFSIZE <
+ * DEFAULT_BUCKET_SIZE;
+ */
b = ap_bucket_make_heap(b, buf, l, 1, &toss);
+ b->read(b, str, len, block); /* set str to new location of data */
b->next->prev = a;
a->next = b->next;