]> sigrok.org Git - libsigrok.git/blobdiff - src/scpi/vxi_clnt.c
scpi_vxi: fix memory leak for SCPI response data in VXI support code
[libsigrok.git] / src / scpi / vxi_clnt.c
index 313bfd7fd70dc07660d9c283a5a50319abfb3ba6..f824f676b940b2de406b8fa72a65bc9521c26fa0 100644 (file)
@@ -3,9 +3,12 @@
  * It was generated using rpcgen.
  */
 
+#include <config.h>
 #include "vxi.h"
 #include <memory.h> /* for memset */
 
+#define SR_XDRPROC_CALLBACK(f) ((xdrproc_t) (void (*)(void)) (f))
+
 /* Default timeout can be changed using clnt_control() */
 static struct timeval TIMEOUT = { 25, 0 };
 
@@ -241,7 +244,7 @@ destroy_intr_chan_1(void *argp, CLIENT *clnt)
 
        memset((char *)&clnt_res, 0, sizeof(clnt_res));
        if (clnt_call (clnt, destroy_intr_chan,
-               (xdrproc_t) xdr_void, (caddr_t) argp,
+               SR_XDRPROC_CALLBACK(xdr_void), (caddr_t) argp,
                (xdrproc_t) xdr_Device_Error, (caddr_t) &clnt_res,
                TIMEOUT) != RPC_SUCCESS) {
                return (NULL);
@@ -257,7 +260,7 @@ device_intr_srq_1(Device_SrqParms *argp, CLIENT *clnt)
        memset((char *)&clnt_res, 0, sizeof(clnt_res));
        if (clnt_call (clnt, device_intr_srq,
                (xdrproc_t) xdr_Device_SrqParms, (caddr_t) argp,
-               (xdrproc_t) xdr_void, (caddr_t) &clnt_res,
+               SR_XDRPROC_CALLBACK(xdr_void), (caddr_t) &clnt_res,
                TIMEOUT) != RPC_SUCCESS) {
                return (NULL);
        }