diff options
author | Marcus Meissner <marcus@linux-n4oc.site> | 2016-09-18 21:47:16 +0200 |
---|---|---|
committer | Marcus Meissner <marcus@linux-n4oc.site> | 2016-09-18 21:47:16 +0200 |
commit | 61eee7a9b07b24a2d4469f16592bf2df21116512 (patch) | |
tree | 9e166a809f7605294e61fa7c55c0a9dc3982fa33 /camlibs | |
parent | b71278517b89bcef2ede80b6911038c18bfa4cf8 (diff) | |
download | libgphoto2-61eee7a9b07b24a2d4469f16592bf2df21116512.tar.gz |
- during fuzzing ignore serial number
- handle errors from deviceinfo decoding
Diffstat (limited to 'camlibs')
-rw-r--r-- | camlibs/ptp2/ptp.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/camlibs/ptp2/ptp.c b/camlibs/ptp2/ptp.c index bee6c8fbf..248acd807 100644 --- a/camlibs/ptp2/ptp.c +++ b/camlibs/ptp2/ptp.c @@ -224,7 +224,9 @@ ptp_transaction_new (PTPParams* params, PTPContainer* ptp, "PTP: Sequence number mismatch %d vs expected %d.", ptp->Transaction_ID, params->transaction_id-1 ); +#ifndef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION return PTP_ERROR_BADPARAM; +#endif } break; } @@ -463,12 +465,16 @@ ptp_getdeviceinfo (PTPParams* params, PTPDeviceInfo* deviceinfo) PTPContainer ptp; unsigned char *data; unsigned int size; + int ret; PTP_CNT_INIT(ptp, PTP_OC_GetDeviceInfo); CHECK_PTP_RC(ptp_transaction(params, &ptp, PTP_DP_GETDATA, 0, &data, &size)); - ptp_unpack_DI(params, data, deviceinfo, size); + ret = ptp_unpack_DI(params, data, deviceinfo, size); free(data); - return PTP_RC_OK; + if (ret) + return PTP_RC_OK; + else + return PTP_ERROR_IO; } uint16_t |