aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Yu <tlyu@mit.edu>2016-09-20 15:58:50 -0400
committerTom Yu <tlyu@mit.edu>2016-09-21 15:23:25 -0400
commit4f1afe0efdb0be43e04567b5636b646322965be8 (patch)
tree8ffc02e24246d5b80c71baa1d87182892949a48e
parent26ae4495eededc9854f533b1cb2c0f23160290d8 (diff)
downloadkrb5-4f1afe0efdb0be43e04567b5636b646322965be8.zip
krb5-4f1afe0efdb0be43e04567b5636b646322965be8.tar.gz
krb5-4f1afe0efdb0be43e04567b5636b646322965be8.tar.bz2
Silence warnings in lib/rpc
Cast through (void *) in xdr.c to silence pointer target width warnings. In xdr_sizeof.c, use x_private and x_base as proper pointers as in xdr_mem.c instead of trying to store an integer in a pointer.
-rw-r--r--src/lib/rpc/xdr.c10
-rw-r--r--src/lib/rpc/xdr_sizeof.c26
2 files changed, 18 insertions, 18 deletions
diff --git a/src/lib/rpc/xdr.c b/src/lib/rpc/xdr.c
index 4261108..2b7c17b 100644
--- a/src/lib/rpc/xdr.c
+++ b/src/lib/rpc/xdr.c
@@ -362,17 +362,17 @@ xdr_enum(XDR *xdrs, enum_t *ep)
break;
}
if (sizeof (enum sizecheck) == sizeof (long)) {
- return (xdr_long(xdrs, (long *)ep));
+ return (xdr_long(xdrs, (long *)(void *)ep));
} else if (sizeof (enum sizecheck) == sizeof (int)) {
- return (xdr_int(xdrs, (int *)ep));
+ return (xdr_int(xdrs, (int *)(void *)ep));
} else if (sizeof (enum sizecheck) == sizeof (short)) {
- return (xdr_short(xdrs, (short *)ep));
+ return (xdr_short(xdrs, (short *)(void *)ep));
} else {
return (FALSE);
}
#else
- (void) (xdr_short(xdrs, (short *)ep));
- return (xdr_long(xdrs, (long *)ep));
+ (void) (xdr_short(xdrs, (short *)(void *)ep));
+ return (xdr_long(xdrs, (long *)(void *)ep));
#endif
}
diff --git a/src/lib/rpc/xdr_sizeof.c b/src/lib/rpc/xdr_sizeof.c
index 145e387..5b77fa6 100644
--- a/src/lib/rpc/xdr_sizeof.c
+++ b/src/lib/rpc/xdr_sizeof.c
@@ -91,21 +91,21 @@ x_inline(xdrs, len)
if (xdrs->x_op != XDR_ENCODE) {
return (NULL);
}
- if (len < (int) xdrs->x_base) {
+ if (len < (int) ((caddr_t) xdrs->x_private - xdrs->x_base)) {
/* x_private was already allocated */
xdrs->x_handy += len;
return ((rpc_inline_t *) xdrs->x_private);
} else {
/* Free the earlier space and allocate new area */
- if (xdrs->x_private)
- free(xdrs->x_private);
- if ((xdrs->x_private = (caddr_t) malloc(len)) == NULL) {
- xdrs->x_base = 0;
+ if (xdrs->x_base)
+ free(xdrs->x_base);
+ if ((xdrs->x_base = (caddr_t) malloc(len)) == NULL) {
+ xdrs->x_private = NULL;
return (NULL);
}
- xdrs->x_base = (caddr_t) len;
+ xdrs->x_private = xdrs->x_base + len;
xdrs->x_handy += len;
- return ((rpc_inline_t *) xdrs->x_private);
+ return ((rpc_inline_t *) (void *) xdrs->x_base);
}
}
@@ -121,10 +121,10 @@ x_destroy(xdrs)
XDR *xdrs;
{
xdrs->x_handy = 0;
- xdrs->x_base = 0;
- if (xdrs->x_private) {
- free(xdrs->x_private);
- xdrs->x_private = NULL;
+ xdrs->x_private = NULL;
+ if (xdrs->x_base) {
+ free(xdrs->x_base);
+ xdrs->x_base = NULL;
}
return;
}
@@ -159,7 +159,7 @@ xdr_sizeof(func, data)
x.x_base = (caddr_t) 0;
stat = func(&x, data);
- if (x.x_private)
- free(x.x_private);
+ if (x.x_base)
+ free(x.x_base);
return (stat == TRUE ? (unsigned) x.x_handy: 0);
}