summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUwe Steinmann <steinm@php.net>2001-10-24 08:33:09 +0000
committerUwe Steinmann <steinm@php.net>2001-10-24 08:33:09 +0000
commit9290bf04e841dbd25e5b13d038ae94c1e0dc382b (patch)
tree46e6d04a770d84fc0bb33bc2dc767620f1a43c56
parent90544a10eea4d9ea30b7c175de256e3003f474f4 (diff)
downloadphp-git-9290bf04e841dbd25e5b13d038ae94c1e0dc382b.tar.gz
- switched src and dest in memcpy. This caused a segm fault in hw_new_document_from_file()
-rw-r--r--ext/hyperwave/hw.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/ext/hyperwave/hw.c b/ext/hyperwave/hw.c
index 274865de9d..df2a1bca05 100644
--- a/ext/hyperwave/hw.c
+++ b/ext/hyperwave/hw.c
@@ -2911,9 +2911,9 @@ PHP_FUNCTION(hw_new_document_from_file)
fstat(fd, &sbuf);
if (sbuf.st_size > BUFSIZE) {
-/* off = ftell(fp); */
- len = sbuf.st_size;/* - off; */
- p = mmap(0, len, PROT_READ, MAP_PRIVATE, fd, off);
+ off = ftell(fp);
+ len = sbuf.st_size - off;
+ p = mmap(0, len, PROT_READ, MAP_SHARED, fd, off);
if (p != (void *) MAP_FAILED) {
doc->data = malloc(len);
if(NULL == doc->data) {
@@ -2921,7 +2921,7 @@ PHP_FUNCTION(hw_new_document_from_file)
free(doc);
RETURN_FALSE;
}
- memcpy(p, doc->data, len);
+ memcpy(doc->data, p, len);
munmap(p, len);
bcount = len;
doc->size = len;