Message ID | 20230825133252.9056-11-jo.vanbulck@cs.kuleuven.be (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | selftests/sgx: Fix compilation errors | expand |
On Fri Aug 25, 2023 at 4:32 PM EEST, Jo Van Bulck wrote: > Ensure sym_tab and sym_names are zero-initialized and add an early-out > condition in the unlikely (erroneous) case that the enclave ELF file would > not contain a symbol table. > > This addresses -Werror=maybe-uninitialized compiler warnings for gcc -O2. > > Fixes: 33c5aac3bf32 ("selftests/sgx: Test complete changing of page type flow") > Signed-off-by: Jo Van Bulck <jo.vanbulck@cs.kuleuven.be> > --- > tools/testing/selftests/sgx/load.c | 9 ++++++--- > 1 file changed, 6 insertions(+), 3 deletions(-) > > diff --git a/tools/testing/selftests/sgx/load.c b/tools/testing/selftests/sgx/load.c > index 94bdeac1cf04..c9f658e44de6 100644 > --- a/tools/testing/selftests/sgx/load.c > +++ b/tools/testing/selftests/sgx/load.c > @@ -136,11 +136,11 @@ static bool encl_ioc_add_pages(struct encl *encl, struct encl_segment *seg) > */ > uint64_t encl_get_entry(struct encl *encl, const char *symbol) > { > + Elf64_Sym *symtab = NULL; > + char *sym_names = NULL; > Elf64_Shdr *sections; > - Elf64_Sym *symtab; > Elf64_Ehdr *ehdr; > - char *sym_names; > - int num_sym; > + int num_sym = 0; > int i; > > ehdr = encl->bin; > @@ -161,6 +161,9 @@ uint64_t encl_get_entry(struct encl *encl, const char *symbol) > } > } > > + if (!symtab || !sym_names) > + return 0; > + > for (i = 0; i < num_sym; i++) { > Elf64_Sym *sym = &symtab[i]; > > -- > 2.25.1 Bug fixes should be always in the head of the patch set. BR, Jarkko
On 27.08.23 20:36, Jarkko Sakkinen wrote:> Bug fixes should be always in the head of the patch set. Thanks for pointing this out. I'll make sure to move this to the head in the next patch set revision. Best, Jo
diff --git a/tools/testing/selftests/sgx/load.c b/tools/testing/selftests/sgx/load.c index 94bdeac1cf04..c9f658e44de6 100644 --- a/tools/testing/selftests/sgx/load.c +++ b/tools/testing/selftests/sgx/load.c @@ -136,11 +136,11 @@ static bool encl_ioc_add_pages(struct encl *encl, struct encl_segment *seg) */ uint64_t encl_get_entry(struct encl *encl, const char *symbol) { + Elf64_Sym *symtab = NULL; + char *sym_names = NULL; Elf64_Shdr *sections; - Elf64_Sym *symtab; Elf64_Ehdr *ehdr; - char *sym_names; - int num_sym; + int num_sym = 0; int i; ehdr = encl->bin; @@ -161,6 +161,9 @@ uint64_t encl_get_entry(struct encl *encl, const char *symbol) } } + if (!symtab || !sym_names) + return 0; + for (i = 0; i < num_sym; i++) { Elf64_Sym *sym = &symtab[i];
Ensure sym_tab and sym_names are zero-initialized and add an early-out condition in the unlikely (erroneous) case that the enclave ELF file would not contain a symbol table. This addresses -Werror=maybe-uninitialized compiler warnings for gcc -O2. Fixes: 33c5aac3bf32 ("selftests/sgx: Test complete changing of page type flow") Signed-off-by: Jo Van Bulck <jo.vanbulck@cs.kuleuven.be> --- tools/testing/selftests/sgx/load.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-)