mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	libbpf: Skip empty sections in bpf_object__init_global_data_maps
The GNU assembler generates an empty .bss section. This is a well established behavior in GAS that happens in all supported targets. The LLVM assembler doesn't generate an empty .bss section. bpftool chokes on the empty .bss section. Additionally in bpf_object__elf_collect the sec_desc->data is not initialized when a section is not recognized. In this case, this happens with .comment. So we must check that sec_desc->data is initialized before checking if the size is 0. Signed-off-by: James Hilliard <james.hilliard1@gmail.com> Signed-off-by: Andrii Nakryiko <andrii@kernel.org> Acked-by: Jiri Olsa <jolsa@kernel.org> Link: https://lore.kernel.org/bpf/20220731232649.4668-1-james.hilliard1@gmail.com
This commit is contained in:
		
							parent
							
								
									f86d1fbbe7
								
							
						
					
					
						commit
						47ea7417b0
					
				
					 1 changed files with 4 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -1642,6 +1642,10 @@ static int bpf_object__init_global_data_maps(struct bpf_object *obj)
 | 
			
		|||
	for (sec_idx = 1; sec_idx < obj->efile.sec_cnt; sec_idx++) {
 | 
			
		||||
		sec_desc = &obj->efile.secs[sec_idx];
 | 
			
		||||
 | 
			
		||||
		/* Skip recognized sections with size 0. */
 | 
			
		||||
		if (sec_desc->data && sec_desc->data->d_size == 0)
 | 
			
		||||
			continue;
 | 
			
		||||
 | 
			
		||||
		switch (sec_desc->sec_type) {
 | 
			
		||||
		case SEC_DATA:
 | 
			
		||||
			sec_name = elf_sec_name(obj, elf_sec_by_idx(obj, sec_idx));
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue