diff options
author | Uwe Steinmann <steinm@php.net> | 2001-10-24 08:33:09 +0000 |
---|---|---|
committer | Uwe Steinmann <steinm@php.net> | 2001-10-24 08:33:09 +0000 |
commit | 9290bf04e841dbd25e5b13d038ae94c1e0dc382b (patch) | |
tree | 46e6d04a770d84fc0bb33bc2dc767620f1a43c56 | |
parent | 90544a10eea4d9ea30b7c175de256e3003f474f4 (diff) | |
download | php-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.c | 8 |
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; |