summaryrefslogtreecommitdiff
path: root/camlibs/ptp2/usb.c
diff options
context:
space:
mode:
authorMarcus Meissner <marcus@linux-n4oc.site>2016-09-17 19:12:52 +0200
committerMarcus Meissner <marcus@linux-n4oc.site>2016-09-17 19:12:52 +0200
commit2c0522620d2e9ef3051936172bd09dd210f3fe71 (patch)
treea7e62f78c3f5112905a4645624f52b9ac17324f5 /camlibs/ptp2/usb.c
parent3807eddfdc82450d6ab9e4738752636939f25dfa (diff)
downloadlibgphoto2-2c0522620d2e9ef3051936172bd09dd210f3fe71.tar.gz
verify sizes in usb response
Diffstat (limited to 'camlibs/ptp2/usb.c')
-rw-r--r--camlibs/ptp2/usb.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/camlibs/ptp2/usb.c b/camlibs/ptp2/usb.c
index 69525c690..0fe3551b2 100644
--- a/camlibs/ptp2/usb.c
+++ b/camlibs/ptp2/usb.c
@@ -438,6 +438,12 @@ ptp_usb_getresp (PTPParams* params, PTPContainer* resp)
if (ret!=PTP_RC_OK) {
ret = PTP_ERROR_IO;
} else
+ if (rlen < 12) {
+ ret = PTP_ERROR_IO;
+ } else
+ if (rlen != dtoh32(usbresp.length)) {
+ ret = PTP_ERROR_IO;
+ } else
if (dtoh16(usbresp.type)!=PTP_USB_CONTAINER_RESPONSE) {
ret = PTP_ERROR_RESP_EXPECTED;
} else