Darren Kenny 
							
						 
					 
					
						
						
						
						
							
						
						
							9213575b7a 
							
						 
					 
					
						
						
							
							normal/completion: Fix leaking of memory when processing a completion  
						
						... 
						
						
						
						It is possible for the code to reach the end of the function without
freeing the memory allocated to argv and argc still to be 0.
We should always call grub_free(argv). The grub_free() will handle
a NULL argument correctly if it reaches that code without the memory
being allocated.
Fixes: CID 96672
Signed-off-by: Darren Kenny <darren.kenny@oracle.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com> 
						
					 
					
						2021-03-02 15:54:17 +01:00 
						 
				 
			
				
					
						
							
							
								Peter Jones 
							
						 
					 
					
						
						
						
						
							
						
						
							f0f97576e0 
							
						 
					 
					
						
						
							
							normal/completion: Fix possible NULL pointer dereference  
						
						... 
						
						
						
						Coverity Scan reports that the grub_strrchr() function can return NULL if
the character is not found. Check if that's the case for dirfile pointer.
Signed-off-by: Peter Jones <pjones@redhat.com>
Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com> 
						
					 
					
						2020-03-10 21:40:23 +01:00 
						 
				 
			
				
					
						
							
							
								Vladimir Serbinenko 
							
						 
					 
					
						
						
						
						
							
						
						
							ad4bfeec5c 
							
						 
					 
					
						
						
							
							Change fs functions to add fs_ prefix  
						
						... 
						
						
						
						This avoid conflict with gnulib
Signed-off-by: Vladimir Serbinenko <phcoder@google.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com> 
						
					 
					
						2019-04-09 10:03:29 +10:00 
						 
				 
			
				
					
						
							
							
								Vladimir Serbinenko 
							
						 
					 
					
						
						
						
						
							
						
						
							e54b8f536b 
							
						 
					 
					
						
						
							
							* include/grub/misc.h (grub_strcat): Removed. All users changed to  
						
						... 
						
						
						
						more appropriate functions. 
						
					 
					
						2013-11-01 16:27:37 +01:00 
						 
				 
			
				
					
						
							
							
								Vladimir 'phcoder' Serbinenko 
							
						 
					 
					
						
						
						
						
							
						
						
							c7037f1d0f 
							
						 
					 
					
						
						
							
							* grub-core/normal/completion.c: Remove variable length arrays.  
						
						... 
						
						
						
						* grub-core/normal/menu_entry.c: Likewise.
	Reduces normal.mod by 496 bytes. 
						
					 
					
						2013-10-20 13:55:35 +02:00 
						 
				 
			
				
					
						
							
							
								Colin Watson 
							
						 
					 
					
						
						
						
						
							
						
						
							fc524edf65 
							
						 
					 
					
						
						
							
							Remove nested functions from filesystem directory iterators.  
						
						... 
						
						
						
						* include/grub/fs.h (grub_fs_dir_hook_t): New type.
(struct grub_fs.dir): Add hook_data argument.
Update all implementations and callers. 
						
					 
					
						2013-01-21 01:33:46 +00:00 
						 
				 
			
				
					
						
							
							
								Colin Watson 
							
						 
					 
					
						
						
						
						
							
						
						
							25239370fd 
							
						 
					 
					
						
						
							
							Remove nested functions from device iterators.  
						
						... 
						
						
						
						* include/grub/arc/arc.h (grub_arc_iterate_devs_hook_t): New type.
(grub_arc_iterate_devs): Add hook_data argument.
* include/grub/ata.h (grub_ata_dev_iterate_hook_t): New type.
(struct grub_ata_dev.iterate): Add hook_data argument.
* include/grub/device.h (grub_device_iterate_hook_t): New type.
(grub_device_iterate): Add hook_data argument.
* include/grub/disk.h (grub_disk_dev_iterate_hook_t): New type.
(struct grub_disk_dev.iterate): Add hook_data argument.
(grub_disk_dev_iterate): Likewise.
* include/grub/gpt_partition.h (grub_gpt_partition_map_iterate):
Likewise.
* include/grub/msdos_partition.h (grub_partition_msdos_iterate):
Likewise.
* include/grub/partition.h (grub_partition_iterate_hook_t): New
type.
(struct grub_partition_map.iterate): Add hook_data argument.
(grub_partition_iterate): Likewise.
* include/grub/scsi.h (grub_scsi_dev_iterate_hook_t): New type.
(struct grub_scsi_dev.iterate): Add hook_data argument.
Update all callers. 
						
					 
					
						2013-01-20 15:52:15 +00:00 
						 
				 
			
				
					
						
							
							
								Colin Watson 
							
						 
					 
					
						
						
						
						
							
						
						
							09fd6d8293 
							
						 
					 
					
						
						
							
							Remove nested functions from script reading and parsing.  
						
						... 
						
						
						
						* grub-core/kern/parser.c (grub_parser_split_cmdline): Add
getline_data argument, passed to getline.
* grub-core/kern/rescue_parser.c (grub_rescue_parse_line): Add
getline_data argument, passed to grub_parser_split_cmdline.
* grub-core/script/lexer.c (grub_script_lexer_yywrap): Pass
lexerstate->getline_data to lexerstate->getline.
(grub_script_lexer_init): Add getline_data argument, saved in
lexerstate->getline_data.
* grub-core/script/main.c (grub_normal_parse_line): Add getline_data
argument, passed to grub_script_parse.
* grub-core/script/script.c (grub_script_parse): Add getline_data
argument, passed to grub_script_lexer_init.
* include/grub/parser.h (grub_parser_split_cmdline): Update
prototype.  Update all callers to pass appropriate getline data.
(struct grub_parser.parse_line): Likewise.
(grub_rescue_parse_line): Likewise.
* include/grub/reader.h (grub_reader_getline_t): Add void *
argument.
* include/grub/script_sh.h (struct grub_lexer_param): Add
getline_data member.
(grub_script_parse): Update prototype.  Update all callers to pass
appropriate getline data.
(grub_script_lexer_init): Likewise.
(grub_normal_parse_line): Likewise.
* grub-core/commands/legacycfg.c (legacy_file_getline): Add unused
data argument.
* grub-core/kern/parser.c (grub_parser_execute: getline): Make
static instead of nested.  Rename to ...
(grub_parser_execute_getline): ... this.
* grub-core/kern/rescue_reader.c (grub_rescue_read_line): Add unused
data argument.
* grub-core/normal/main.c (read_config_file: getline): Make static
instead of nested.  Rename to ...
(read_config_file_getline): ... this.
(grub_normal_read_line): Add unused data argument.
* grub-core/script/execute.c (grub_script_execute_sourcecode:
getline): Make static instead of nested.  Rename to ...
(grub_script_execute_sourcecode_getline): ... this.
* util/grub-script-check.c (main: get_config_line): Make static
instead of nested. 
						
					 
					
						2013-01-15 12:03:25 +00:00 
						 
				 
			
				
					
						
							
							
								Vladimir 'phcoder' Serbinenko 
							
						 
					 
					
						
						
						
						
							
						
						
							ead2a8822b 
							
						 
					 
					
						
						
							
							Remove prio_list  
						
						
						
					 
					
						2012-02-12 03:52:17 +01:00 
						 
				 
			
				
					
						
							
							
								Vladimir 'phcoder' Serbinenko 
							
						 
					 
					
						
						
						
						
							
						
						
							f990cbf90e 
							
						 
					 
					
						
						
							
							* grub-core/normal/completion.c (iterate_dev): Close the disk.  
						
						
						
					 
					
						2012-01-29 18:20:02 +01:00 
						 
				 
			
				
					
						
							
							
								Vladimir 'phcoder' Serbinenko 
							
						 
					 
					
						
						
						
						
							
						
						
							4d8c476536 
							
						 
					 
					
						
						
							
							Avoid cutting in the middle of UTF-8 string.  
						
						... 
						
						
						
						* include/grub/charset.h (grub_getend): New function.
	* grub-core/script/function.c (grub_script_function_find): Use
	grub_getend.
	* grub-core/normal/completion.c (add_completion): Likewise. 
						
					 
					
						2011-12-25 16:11:41 +01:00 
						 
				 
			
				
					
						
							
							
								Vladimir 'phcoder' Serbinenko 
							
						 
					 
					
						
						
						
						
							
						
						
							bf3a385792 
							
						 
					 
					
						
						
							
							Add missing const qualifiers.  
						
						... 
						
						
						
						* grub-core/commands/i386/pc/sendkey.c (keysym): Add missing const.
	* grub-core/commands/lspci.c (grub_pci_classname): Likewise.
	* grub-core/commands/menuentry.c (hotkey_aliases): Likewise.
	* grub-core/disk/lvm.c (grub_lvm_getvalue): Likewise.
	(grub_lvm_check_flag): Likewise.
	* grub-core/efiemu/i386/coredetect.c
	(grub_efiemu_get_default_core_name): Likewise
	* grub-core/efiemu/main.c (grub_efiemu_autocore): Likewise.
	* grub-core/fs/hfsplus.c (grub_hfsplus_catkey_internal): Likewise.
	* grub-core/fs/ntfs.c (fixup): Likewise.
	* grub-core/fs/xfs.c (grub_xfs_iterate_dir): Likewise.
	* grub-core/fs/zfs/zfs.c (decomp_entry): Likewise.
	(fzap_lookup): Likewise.
	(zap_lookup): Likewise.
	* grub-core/gnulib/regcomp.c (init_dfa): Likewise.
	* grub-core/lib/legacy_parse.c (check_option): Likewise.
	* grub-core/lib/posix_wrap/langinfo.h (nl_langinfo): Likewise.
	* grub-core/loader/i386/bsd.c (grub_bsd_add_meta): Likewise.
	(grub_freebsd_add_meta_module): Likewise.
	(grub_cmd_freebsd_module): Likewise.
	* grub-core/loader/i386/xnu.c (tbl_alias): Likewise.
	* grub-core/loader/xnu.c (grub_xnu_register_memory): Likewise.
	(grub_xnu_writetree_get_size): Likewise.
	(grub_xnu_writetree_toheap_real): Likewise.
	(grub_xnu_find_key): Likewise.
	(grub_xnu_create_key): Likewise.
	(grub_xnu_create_value): Likewise.
	(grub_xnu_register_memory): Likewise.
	(grub_xnu_check_os_bundle_required): Likewise.
	(grub_xnu_scan_dir_for_kexts): Likewise.
	(grub_xnu_load_kext_from_dir): Likewise.
	* grub-core/normal/color.c (color_list): Likewise.
	* grub-core/normal/completion.c (current_word): Likewise.
	* grub-core/normal/menu_entry.c (insert_string): Likewise.
	* grub-core/term/serial.c (grub_serial_find): Likewise.
	* grub-core/term/tparm.c (grub_terminfo_tparm): Likewise.
	* include/grub/efiemu/efiemu.h (grub_efiemu_get_default_core_name):
	Likewise.
	* include/grub/i386/bsd.h (grub_bsd_add_meta): Likewise.
	(grub_freebsd_add_meta_module): Likewise.
	* include/grub/lib/arg.h (grub_arg_option): Likewise.
	* include/grub/net.h (grub_net_card_driver): Likewise.
	(grub_net_card): Likewise.
	(grub_net_app_protocol): Likewise.
	* include/grub/parttool.h (grub_parttool_argdesc): Likewise.
	* include/grub/serial.h (grub_serial_find): Likewise.
	* include/grub/tparm.h (grub_terminfo_tparm): Likewise.
	* include/grub/xnu.h (grub_xnu_create_key): Likewise.
	(grub_xnu_create_value): Likewise.
	(grub_xnu_find_key): Likewise.
	(grub_xnu_scan_dir_for_kexts): Likewise.
	(grub_xnu_load_kext_from_dir): Likewise.
	* include/grub/zfs/zio_checksum.h (zio_checksum_t): Moved from here ...
	* grub-core/fs/zfs/zfs.c (zio_checksum_t): ...here.
	* include/grub/zfs/zio_checksum.h (zio_checksum_info):
	Moved from here ...
	* grub-core/fs/zfs/zfs.c (zio_checksum_info): ... here. Added missing const. 
						
					 
					
						2011-11-30 16:20:13 +01:00 
						 
				 
			
				
					
						
							
							
								Vladimir 'phcoder' Serbinenko 
							
						 
					 
					
						
						
						
						
							
						
						
							74342e312f 
							
						 
					 
					
						
						
							
							Support some annoying BSD and Minix subpartitions.  
						
						... 
						
						
						
						* Makefile.util.def (libgrub.a): Add grub-core/partmap/bsdlabel.c.
	* grub-core/disk/efi/efidisk.c (grub_efidisk_get_device_name):
	Properly handle concatenation.
	* grub-core/kern/device.c (grub_device_iterate): Likewise.
	* grub-core/normal/completion.c (iterate_partition): Likewise.
	* grub-core/kern/disk.c (grub_disk_open): Make disk->name not
	contain partition. All users updated.
	* grub-core/partmap/bsdlabel.c (grub_netbsdlabel_partition_map): New
	struct.
	(grub_openbsdlabel_partition_map): Likewise.
	(bsdlabel_partition_map_iterate): Rename to ..
	(iterate_real): ... this. New arguments sector, freebsd and pmap.
	(bsdlabel_partition_map_iterate): New function.
	(netopenbsdlabel_partition_map_iterate): Likewise.
	(netbsdlabel_partition_map_iterate): Likewise.
	(openbsdlabel_partition_map_iterate): Likewise.
	(GRUB_MOD_INIT): Register new partmaps.
	(GRUB_MOD_FINI): Unregister new partmaps.
	* grub-core/partmap/msdos.c (pc_partition_map_iterate): Rename to ...
	(grub_partition_msdos_iterate): ... this. All users updated.
	Don't support embedding other than in a minix partition.
	* include/grub/msdos_partition.h (grub_partition_msdos_iterate): New
	proto.
	* include/grub/partition.h (grub_partition): New field msdostype.
	* util/grub-install.in: Handle openbsd and netbsd types being in
	part_bsd module. 
						
					 
					
						2010-09-20 21:45:06 +02:00 
						 
				 
			
				
					
						
							
							
								Vladimir 'phcoder' Serbinenko 
							
						 
					 
					
						
						
						
						
							
						
						
							ed80f7d586 
							
						 
					 
					
						
						
							
							* include/grub/command.h (GRUB_COMMAND_FLAG_CMDLINE): Removed. All  
						
						... 
						
						
						
						users updated.
	(GRUB_COMMAND_FLAG_MENU): Likewise.
	(GRUB_COMMAND_FLAG_BOTH): Likewise.
	(GRUB_COMMAND_FLAG_TITLE): Removed.
	(GRUB_COMMAND_FLAG_NO_ECHO): Likewise.
	(GRUB_COMMAND_FLAG_EXTCMD): Moved into enum.
	(GRUB_COMMAND_FLAG_DYNCMD): Likewise.
	(GRUB_COMMAND_FLAG_BLOCKS): Likewise.
	(grub_command_flags_t): New enum. All users updated. 
						
					 
					
						2010-09-14 23:06:01 +02:00 
						 
				 
			
				
					
						
							
							
								Vladimir 'phcoder' Serbinenko 
							
						 
					 
					
						
						
						
						
							
						
						
							94564f81a8 
							
						 
					 
					
						
						
							
							* include/grub/disk.h (grub_disk): Remove has_partitions.  
						
						... 
						
						
						
						All users updated.
	* disk/loopback.c (grub_loopback): Remove has_partitions.
	All users updated.
	(options): Remove partitions. All users updated.
	* util/grub-fstest.c (fstest): Don't pass "-p" to loopback.
	* util/i386/pc/grub-setup.c (setup): copy partition table only when
	actual partition table is found. 
						
					 
					
						2010-09-13 23:59:22 +02:00 
						 
				 
			
				
					
						
							
							
								Vladimir 'phcoder' Serbinenko 
							
						 
					 
					
						
						
						
						
							
						
						
							f452b04048 
							
						 
					 
					
						
						
							
							* grub-core/normal/completion.c (complete_file): Handle device  
						
						... 
						
						
						
						containing slash.
	Fix based on patch by Doug Nazar. 
						
					 
					
						2010-09-13 14:26:55 +02:00 
						 
				 
			
				
					
						
							
							
								Vladimir 'phcoder' Serbinenko 
							
						 
					 
					
						
						
						
						
							
						
						
							43de930c20 
							
						 
					 
					
						
						
							
							Change to disk->name being raw name. It makes less hidden issues  
						
						
						
					 
					
						2010-09-08 21:22:41 +02:00 
						 
				 
			
				
					
						
							
							
								Vladimir 'phcoder' Serbinenko 
							
						 
					 
					
						
						
						
						
							
						
						
							dedb5f9be2 
							
						 
					 
					
						
						
							
							merge mainline into nested  
						
						
						
					 
					
						2010-09-08 20:40:27 +02:00 
						 
				 
			
				
					
						
							
							
								Vladimir 'phcoder' Serbinenko 
							
						 
					 
					
						
						
						
						
							
						
						
							3fcb410549 
							
						 
					 
					
						
						
							
							Fix a double device name  
						
						
						
					 
					
						2010-09-08 20:39:57 +02:00 
						 
				 
			
				
					
						
							
							
								BVK Chaitanya 
							
						 
					 
					
						
						
						
						
							
						
						
							25b60c913b 
							
						 
					 
					
						
						
							
							* grub-core/normal/completion.c (grub_normal_do_completion): Fix  
						
						... 
						
						
						
						grub_free order. 
						
					 
					
						2010-09-04 14:19:04 +05:30 
						 
				 
			
				
					
						
							
							
								Vladimir 'phcoder' Serbinenko 
							
						 
					 
					
						
						
						
						
							
						
						
							46422ebf1a 
							
						 
					 
					
						
						
							
							* grub-core/normal/completion.c (grub_normal_do_completion): Free argv  
						
						... 
						
						
						
						on failure. 
						
					 
					
						2010-08-28 15:31:21 +02:00 
						 
				 
			
				
					
						
							
							
								BVK Chaitanya 
							
						 
					 
					
						
						
						
						
							
						
						
							297f0c2b6e 
							
						 
					 
					
						
						
							
							merge with mainline  
						
						
						
					 
					
						2010-07-13 00:43:28 +05:30 
						 
				 
			
				
					
						
							
							
								BVK Chaitanya 
							
						 
					 
					
						
						
						
						
							
						
						
							8c41176882 
							
						 
					 
					
						
						
							
							automake commit without merge history  
						
						
						
					 
					
						2010-05-06 11:34:04 +05:30