From: Uwe Steinmann Date: Wed, 24 Oct 2001 08:33:09 +0000 (+0000) Subject: - switched src and dest in memcpy. This caused a segm fault in hw_new_document_from_f... X-Git-Tag: POST_PARAMETER_PARSING_API~19 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9290bf04e841dbd25e5b13d038ae94c1e0dc382b;p=php - switched src and dest in memcpy. This caused a segm fault in hw_new_document_from_file() --- 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;