Fixed logical bug in memcpy_from/to_user
authorKevin Klues <klueska@ros-dev.(none)>
Wed, 24 Mar 2010 07:48:58 +0000 (00:48 -0700)
committerKevin Klues <klueska@cs.berkeley.edu>
Thu, 3 Nov 2011 00:35:37 +0000 (17:35 -0700)
kern/src/pmap.c

index 8b48c56..f9bed2c 100644 (file)
@@ -419,7 +419,7 @@ error_t memcpy_from_user(env_t* env, void* COUNT(len) dest,
        start = ROUNDDOWN(va, PGSIZE);
        end = ROUNDUP(va + len, PGSIZE);
 
-       if(start >= (void*SNT)ULIM || end >= (void*SNT)ULIM)
+       if(start >= (void*SNT)ULIM || end > (void*SNT)ULIM)
                return -EFAULT;
 
        num_pages = LA2PPN(end - start);
@@ -474,7 +474,7 @@ error_t memcpy_to_user(env_t* env, void*DANGEROUS va,
        start = ROUNDDOWN(va, PGSIZE);
        end = ROUNDUP(va + len, PGSIZE);
 
-       if(start >= (void*SNT)ULIM || end >= (void*SNT)ULIM)
+       if(start >= (void*SNT)ULIM || end > (void*SNT)ULIM)
                return -EFAULT;
 
        num_pages = LA2PPN(end - start);