summaryrefslogtreecommitdiff
path: root/camlibs
diff options
context:
space:
mode:
authorMarcus Meissner <marcus@linux-n4oc.site>2016-09-18 21:47:16 +0200
committerMarcus Meissner <marcus@linux-n4oc.site>2016-09-18 21:47:16 +0200
commit61eee7a9b07b24a2d4469f16592bf2df21116512 (patch)
tree9e166a809f7605294e61fa7c55c0a9dc3982fa33 /camlibs
parentb71278517b89bcef2ede80b6911038c18bfa4cf8 (diff)
downloadlibgphoto2-61eee7a9b07b24a2d4469f16592bf2df21116512.tar.gz
- during fuzzing ignore serial number
- handle errors from deviceinfo decoding
Diffstat (limited to 'camlibs')
-rw-r--r--camlibs/ptp2/ptp.c10
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