|  | @@ -77,40 +77,39 @@ DEFINE_LISTP(shim_vma);
 | 
	
		
			
				|  |  |  static LISTP_TYPE(shim_vma) vma_list = LISTP_INIT;
 | 
	
		
			
				|  |  |  static LOCKTYPE vma_list_lock;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static inline int test_vma_equal (struct shim_vma * tmp,
 | 
	
		
			
				|  |  | +static inline bool test_vma_equal (struct shim_vma * tmp,
 | 
	
		
			
				|  |  |                                    const void * addr, uint64_t length)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  | -    return tmp->addr == addr &&
 | 
	
		
			
				|  |  | -           tmp->addr + tmp->length == addr + length;
 | 
	
		
			
				|  |  | +    return tmp->addr == addr && tmp->length == length;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static inline int test_vma_contain (struct shim_vma * tmp,
 | 
	
		
			
				|  |  | +static inline bool test_vma_contain (struct shim_vma * tmp,
 | 
	
		
			
				|  |  |                                      const void * addr, uint64_t length)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  |      return tmp->addr <= addr &&
 | 
	
		
			
				|  |  |             tmp->addr + tmp->length >= addr + length;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static inline int test_vma_startin (struct shim_vma * tmp,
 | 
	
		
			
				|  |  | +static inline bool test_vma_startin (struct shim_vma * tmp,
 | 
	
		
			
				|  |  |                                      const void * addr, uint64_t length)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  |      return tmp->addr >= addr &&
 | 
	
		
			
				|  |  |             tmp->addr < addr + length;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static inline int test_vma_endin (struct shim_vma * tmp,
 | 
	
		
			
				|  |  | +static inline bool test_vma_endin (struct shim_vma * tmp,
 | 
	
		
			
				|  |  |                                    const void * addr, uint64_t length)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  |      return tmp->addr + tmp->length > addr &&
 | 
	
		
			
				|  |  |             tmp->addr + tmp->length <= addr + length;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -static inline int test_vma_overlap (struct shim_vma * tmp,
 | 
	
		
			
				|  |  | +static inline bool test_vma_overlap (struct shim_vma * tmp,
 | 
	
		
			
				|  |  |                                      const void * addr, uint64_t length)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  | -    return test_vma_contain (tmp, addr + 1, 0) ||
 | 
	
		
			
				|  |  | -           test_vma_contain (tmp, addr + length - 1, 0) ||
 | 
	
		
			
				|  |  | -           test_vma_startin (tmp, addr, length - 1);
 | 
	
		
			
				|  |  | +    return test_vma_contain(tmp, addr, 1) ||
 | 
	
		
			
				|  |  | +           test_vma_contain(tmp, addr + length - 1, 1) ||
 | 
	
		
			
				|  |  | +           test_vma_startin(tmp, addr, length);
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  int bkeep_shim_heap (void);
 | 
	
	
		
			
				|  | @@ -274,7 +273,8 @@ static inline void __set_comment (struct shim_vma * vma, const char * comment)
 | 
	
		
			
				|  |  |      if (len > VMA_COMMENT_LEN - 1)
 | 
	
		
			
				|  |  |          len = VMA_COMMENT_LEN - 1;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    memcpy(vma->comment, comment, len + 1);
 | 
	
		
			
				|  |  | +    memcpy(vma->comment, comment, len);
 | 
	
		
			
				|  |  | +    vma->comment[len] = 0;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  static int __bkeep_mmap (void * addr, uint64_t length,
 |