From 3d81394f9106b187c28e35328676e11b662025c6 Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Wed, 1 Apr 2009 17:35:29 +0000 Subject: [PATCH] windows-afsd-xdr-free-20090401 LICENSE MIT make use of xdr_free() to release memory allocated within afsrpc.dll. this prevents crashes when the library is built with a different runtime library version than the application. fix signed/unsigned warnings in the same code snippet --- src/WINNT/afsd/cm_volume.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/WINNT/afsd/cm_volume.c b/src/WINNT/afsd/cm_volume.c index 03862b8..e41d05a 100644 --- a/src/WINNT/afsd/cm_volume.c +++ b/src/WINNT/afsd/cm_volume.c @@ -163,7 +163,8 @@ long cm_UpdateVolumeLocation(struct cm_cell *cellp, cm_user_t *userp, cm_req_t * cm_volume_t *volp) { cm_conn_t *connp; - int i, j, k; + int i; + afs_uint32 j, k; cm_serverRef_t *tsrp; cm_server_t *tsp; struct sockaddr_in tsockAddr; @@ -412,7 +413,7 @@ long cm_UpdateVolumeLocation(struct cm_cell *cellp, cm_user_t *userp, cm_req_t * serverUUID[j] = uuid; } - free(addrs.bulkaddrs_val); /* This is wrong */ + xdr_free(addrs.bulkaddrs_val, addrs.bulkaddrs_len * sizeof(*addrs.bulkaddrs_val)); if (nentries == 0) code = CM_ERROR_INVAL; -- 1.9.4