2009-03-29 Vladimir Serbinenko <phcoder@gmail.com>
Leak fixes
      * kern/disk.c (grub_disk_cache_store): Invalidate previous cache
      in case of collision
      * disk/scsi.c (grub_scsi_open): free scsi in case of error
			
			
This commit is contained in:
		
							parent
							
								
									9c323f0961
								
							
						
					
					
						commit
						a8c48fd53d
					
				
					 3 changed files with 19 additions and 2 deletions
				
			
		|  | @ -158,10 +158,13 @@ grub_disk_cache_store (unsigned long dev_id, unsigned long disk_id, | |||
|   unsigned index; | ||||
|   struct grub_disk_cache *cache; | ||||
|    | ||||
|   grub_disk_cache_invalidate (dev_id, disk_id, sector); | ||||
|    | ||||
|   index = grub_disk_cache_get_index (dev_id, disk_id, sector); | ||||
|   cache = grub_disk_cache_table + index; | ||||
|   | ||||
|   cache->lock = 1; | ||||
|   grub_free (cache->data); | ||||
|   cache->data = 0; | ||||
|   cache->lock = 0; | ||||
|    | ||||
|   cache->data = grub_malloc (GRUB_DISK_SECTOR_SIZE << GRUB_DISK_CACHE_BITS); | ||||
|   if (! cache->data) | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue