[libnetmap] Fix 32 bit compilation under gcc-6.4
Use uintptr_t to cast a uint64_t to a pointer type. Yeah, it isn't technically correct for platforms with pointers > 64 bits, but it's fine here. This fixes 32 bit compat library builds on amd64 and also mips32 builds. Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D26790
This commit is contained in:
parent
44a1b2f07b
commit
26c29e743b
@ -603,10 +603,9 @@ nmreq_options_decode(const char *opt, struct nmreq_opt_parser parsers[],
|
|||||||
struct nmreq_option *
|
struct nmreq_option *
|
||||||
nmreq_find_option(struct nmreq_header *h, uint32_t t)
|
nmreq_find_option(struct nmreq_header *h, uint32_t t)
|
||||||
{
|
{
|
||||||
struct nmreq_option *o;
|
struct nmreq_option *o = NULL;
|
||||||
|
|
||||||
for (o = (struct nmreq_option *)h->nr_options; o != NULL;
|
nmreq_foreach_option(h, o) {
|
||||||
o = (struct nmreq_option *)o->nro_next) {
|
|
||||||
if (o->nro_reqtype == t)
|
if (o->nro_reqtype == t)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -633,8 +632,14 @@ nmreq_free_options(struct nmreq_header *h)
|
|||||||
{
|
{
|
||||||
struct nmreq_option *o, *next;
|
struct nmreq_option *o, *next;
|
||||||
|
|
||||||
for (o = (struct nmreq_option *)h->nr_options; o != NULL; o = next) {
|
/*
|
||||||
next = (struct nmreq_option *)o->nro_next;
|
* Note: can't use nmreq_foreach_option() here; it frees the
|
||||||
|
* list as it's walking and nmreq_foreach_option() isn't
|
||||||
|
* modification-safe.
|
||||||
|
*/
|
||||||
|
for (o = (struct nmreq_option *)(uintptr_t)h->nr_options; o != NULL;
|
||||||
|
o = next) {
|
||||||
|
next = (struct nmreq_option *)(uintptr_t)o->nro_next;
|
||||||
free(o);
|
free(o);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user