]> granicus.if.org Git - php/commitdiff
- switched src and dest in memcpy. This caused a segm fault in hw_new_document_from_f...
authorUwe Steinmann <steinm@php.net>
Wed, 24 Oct 2001 08:33:09 +0000 (08:33 +0000)
committerUwe Steinmann <steinm@php.net>
Wed, 24 Oct 2001 08:33:09 +0000 (08:33 +0000)
ext/hyperwave/hw.c

index 274865de9d5da884b3e98bbde439391fadfb7f5c..df2a1bca05b0c4b9c50e18a1922246e4421ee06d 100644 (file)
@@ -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;