openssl#5668: corrections after compiling with -qinfo=all:als.

The ongoing discussion about casting or not in PR #5626 had me compiling
again with above mentioned flags. Indeed the compiler had to say something
about it and I did these changes to silence it again.

Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de>
Reviewed-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/5943)
This commit is contained in:
Matthias Kraft 2018-04-12 12:25:27 +02:00 committed by Richard Levitte
parent 560096f804
commit d47eb76cd5

View file

@ -326,8 +326,9 @@ typedef struct Dl_info {
* address of a function, which is just located in the DATA segment instead of
* the TEXT segment.
*/
static int dladdr(void *addr, Dl_info *dl)
static int dladdr(void *ptr, Dl_info *dl)
{
uintptr_t addr = (uintptr_t)ptr;
unsigned int found = 0;
struct ld_info *ldinfos, *next_ldi, *this_ldi;
@ -352,11 +353,12 @@ static int dladdr(void *addr, Dl_info *dl)
do {
this_ldi = next_ldi;
if (((addr >= this_ldi->ldinfo_textorg)
&& (addr < (this_ldi->ldinfo_textorg + this_ldi->ldinfo_textsize)))
|| ((addr >= this_ldi->ldinfo_dataorg)
&& (addr <
(this_ldi->ldinfo_dataorg + this_ldi->ldinfo_datasize)))) {
if (((addr >= (uintptr_t)this_ldi->ldinfo_textorg)
&& (addr < ((uintptr_t)this_ldi->ldinfo_textorg +
this_ldi->ldinfo_textsize)))
|| ((addr >= (uintptr_t)this_ldi->ldinfo_dataorg)
&& (addr < ((uintptr_t)this_ldi->ldinfo_dataorg +
this_ldi->ldinfo_datasize)))) {
found = 1;
/*
* Ignoring the possibility of a member name and just returning
@ -367,7 +369,8 @@ static int dladdr(void *addr, Dl_info *dl)
OPENSSL_strdup(this_ldi->ldinfo_filename)) == NULL)
errno = ENOMEM;
} else {
next_ldi = (char *)this_ldi + this_ldi->ldinfo_next;
next_ldi =
(struct ld_info *)((uintptr_t)this_ldi + this_ldi->ldinfo_next);
}
} while (this_ldi->ldinfo_next && !found);
OPENSSL_free((void *)ldinfos);
@ -395,7 +398,7 @@ static int dlfcn_pathbyaddr(void *addr, char *path, int sz)
len = (int)strlen(dli.dli_fname);
if (sz <= 0) {
# ifdef _AIX
OPENSSL_free(dli.dli_fname);
OPENSSL_free((void *)dli.dli_fname);
# endif
return len + 1;
}
@ -404,7 +407,7 @@ static int dlfcn_pathbyaddr(void *addr, char *path, int sz)
memcpy(path, dli.dli_fname, len);
path[len++] = 0;
# ifdef _AIX
OPENSSL_free(dli.dli_fname);
OPENSSL_free((void *)dli.dli_fname);
# endif
return len;
}