From c869ec5bcde52de6b48685d48974b2dbeee41302 Mon Sep 17 00:00:00 2001 From: Marcus Meissner Date: Sun, 1 Jun 2014 16:04:42 +0000 Subject: [PATCH] handle error return value of ptp_unpack_DPV git-svn-id: https://svn.code.sf.net/p/gphoto/code/trunk/libgphoto2@14983 67ed7778-7388-44ab-90cf-0a291f65f57c --- camlibs/ptp2/ptp.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/camlibs/ptp2/ptp.c b/camlibs/ptp2/ptp.c index ffe004fe0..37ffbbdf5 100644 --- a/camlibs/ptp2/ptp.c +++ b/camlibs/ptp2/ptp.c @@ -1763,7 +1763,13 @@ ptp_getdevicepropvalue (PTPParams* params, uint16_t propcode, ptp.Nparam=1; len=offset=0; ret=ptp_transaction(params, &ptp, PTP_DP_GETDATA, 0, &dpv, &len); - if (ret == PTP_RC_OK) ptp_unpack_DPV(params, dpv, &offset, len, value, datatype); + if (ret == PTP_RC_OK) { + int ret2 = ptp_unpack_DPV(params, dpv, &offset, len, value, datatype); + if (!ret2) { + ptp_debug (params, "ptp_getdevicepropvalue: unpacking DPV failed"); + ret = PTP_RC_GeneralError; + } + } free(dpv); return ret; } @@ -3676,8 +3682,13 @@ ptp_mtp_getobjectpropvalue ( ptp.Param1 = oid; ptp.Param2 = opc; ret = ptp_transaction(params, &ptp, PTP_DP_GETDATA, 0, &data, &size); - if (ret == PTP_RC_OK) - ptp_unpack_DPV(params, data, &offset, size, value, datatype); + if (ret == PTP_RC_OK) { + int ret2 = ptp_unpack_DPV(params, data, &offset, size, value, datatype); + if (!ret2) { + ptp_debug (params, "ptp_mtp_getobjectpropvalue: unpacking DPV failed"); + ret = PTP_RC_GeneralError; + } + } free(data); return ret; }