]> glassweightruler.freedombox.rocks Git - Ventoy.git/commitdiff
Update for efi mouse
authorlongpanda <admin@ventoy.net>
Wed, 30 Mar 2022 11:52:04 +0000 (19:52 +0800)
committerlongpanda <admin@ventoy.net>
Wed, 30 Mar 2022 11:52:04 +0000 (19:52 +0800)
GRUB2/MOD_SRC/grub-2.04/grub-core/fs/fshelp.c
GRUB2/MOD_SRC/grub-2.04/grub-core/kern/disk.c
GRUB2/MOD_SRC/grub-2.04/grub-core/term/efi/mouse.c
GRUB2/MOD_SRC/grub-2.04/grub-core/ventoy/ventoy_cmd.c

index f5b6772e2f85d602977ecf9513e39c0ac0edf6d2..53a65ec2e46018f2b1b74d988674a4ccb6e29e99 100644 (file)
@@ -426,7 +426,7 @@ grub_fshelp_read_file (grub_disk_t disk, grub_fshelp_node_t node,
          if (grub_errno)
            return -1;
        }
-      else if (read_hook != (grub_disk_read_hook_t)grub_disk_blocklist_read)
+      else if (read_hook != (grub_disk_read_hook_t)(void *)grub_disk_blocklist_read)
        grub_memset (buf, 0, blockend);
 
       buf += blocksize - skipfirst;
index 04d6ce76db085eaa1ca027621124589912f0b484..f583b56b9010c7cdea14fb7aceb06460f2363e0d 100644 (file)
@@ -471,7 +471,7 @@ grub_err_t
 grub_disk_read (grub_disk_t disk, grub_disk_addr_t sector,
                grub_off_t offset, grub_size_t size, void *buf)
 {
-    if (disk->read_hook == (grub_disk_read_hook_t)grub_disk_blocklist_read)
+    if (disk->read_hook == (grub_disk_read_hook_t)(void *)grub_disk_blocklist_read)
     {
         return grub_disk_blocklist_read((ventoy_img_chunk_list *)disk->read_hook_data, sector, size, disk->log_sector_size);
     }
index 957ae17f59dcc8f7e8172554ae9328498ec14886..0d39817ad597dc790718064084fd7a8b477c1f48 100644 (file)
@@ -111,13 +111,14 @@ grub_efi_mouse_prot_init (void)
 
   mouse_input = grub_malloc (sizeof (grub_efi_mouse_prot_t));
   if (!mouse_input)
-    return NULL;
+    goto end;
   mouse_input->mouse = grub_malloc (count
             * sizeof (grub_efi_simple_pointer_protocol_t *));
   if (!mouse_input->mouse)
   {
     grub_free (mouse_input);
-    return NULL;
+    mouse_input = NULL;
+    goto end;
   }
   mouse_input->count = count;
   for (i = 0; i < count; i++)
@@ -135,6 +136,10 @@ grub_efi_mouse_prot_init (void)
        mouse_input->mouse[i]->mode->y, mouse_input->mouse[i]->mode->z);
 #endif
   }
+  
+end:  
+  efi_call_1(b->free_pool, buf);
+
   return mouse_input;
 }
 
index c5897d9e8da99b57f39e8339880012162cab5149..7e4ffc044ac29b46e0a5c7474b947906df213b98 100644 (file)
@@ -3152,7 +3152,7 @@ int ventoy_get_block_list(grub_file_t file, ventoy_img_chunk_list *chunklist, gr
     }
     else
     {
-        file->read_hook = (grub_disk_read_hook_t)grub_disk_blocklist_read;
+        file->read_hook = (grub_disk_read_hook_t)(void *)grub_disk_blocklist_read;
         file->read_hook_data = chunklist;
 
         for (size = file->size; size > 0; size -= read)