summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcus Meissner <marcus@jet.franken.de>2022-11-22 09:09:17 +0100
committerGitHub <noreply@github.com>2022-11-22 09:09:17 +0100
commitfed623576b5f2c78f470c1c5f6d94c8ed754be31 (patch)
tree552068d01c086418710c043c301a792e9b2cf886
parent8a9a45a49bfaf8f91421d714393d49fa05871e4b (diff)
parentc4aa42c161474d03d3ce9137942aa0d8d58ba46f (diff)
downloadlibmtp-fed623576b5f2c78f470c1c5f6d94c8ed754be31.tar.gz
Merge pull request #133 from QiuhaoLi/check-return-value-of-ptp_init_send_memory_handler
libusb-glue: check return value of ptp_init_send_memory_handler
-rw-r--r--src/libopenusb1-glue.c10
-rw-r--r--src/libusb-glue.c10
-rw-r--r--src/libusb1-glue.c10
3 files changed, 24 insertions, 6 deletions
diff --git a/src/libopenusb1-glue.c b/src/libopenusb1-glue.c
index 8dd9e06..c93750d 100644
--- a/src/libopenusb1-glue.c
+++ b/src/libopenusb1-glue.c
@@ -1179,7 +1179,10 @@ ptp_usb_sendreq(PTPParams* params, PTPContainer* req, int dataphase) {
usbreq.payload.params.param5 = htod32(req->Param5);
/* send it to responder */
towrite = PTP_USB_BULK_REQ_LEN - (sizeof (uint32_t)*(5 - req->Nparam));
- ptp_init_send_memory_handler(&memhandler, (unsigned char*) &usbreq, towrite);
+ ret = ptp_init_send_memory_handler(&memhandler, (unsigned char*) &usbreq, towrite);
+ if (ret != PTP_RC_OK) {
+ return ret;
+ }
ret = ptp_write_func(
towrite,
&memhandler,
@@ -1244,7 +1247,10 @@ ptp_usb_senddata(PTPParams* params, PTPContainer* ptp,
return PTP_RC_GeneralError;
}
}
- ptp_init_send_memory_handler(&memhandler, (unsigned char *) &usbdata, wlen);
+ ret = ptp_init_send_memory_handler(&memhandler, (unsigned char *) &usbdata, wlen);
+ if (ret != PTP_RC_OK) {
+ return ret;
+ }
/* send first part of data */
ret = ptp_write_func(wlen, &memhandler, params->data, &written);
ptp_exit_send_memory_handler(&memhandler);
diff --git a/src/libusb-glue.c b/src/libusb-glue.c
index b770163..1ed57c6 100644
--- a/src/libusb-glue.c
+++ b/src/libusb-glue.c
@@ -1171,7 +1171,10 @@ ptp_usb_sendreq (PTPParams* params, PTPContainer* req, int dataphase)
usbreq.payload.params.param5=htod32(req->Param5);
/* send it to responder */
towrite = PTP_USB_BULK_REQ_LEN-(sizeof(uint32_t)*(5-req->Nparam));
- ptp_init_send_memory_handler (&memhandler, (unsigned char*)&usbreq, towrite);
+ ret = ptp_init_send_memory_handler (&memhandler, (unsigned char*)&usbreq, towrite);
+ if (ret != PTP_RC_OK) {
+ return ret;
+ }
ret=ptp_write_func(
towrite,
&memhandler,
@@ -1234,7 +1237,10 @@ ptp_usb_senddata (PTPParams* params, PTPContainer* ptp,
if (gotlen != datawlen)
return PTP_RC_GeneralError;
}
- ptp_init_send_memory_handler (&memhandler, (unsigned char *)&usbdata, wlen);
+ ret = ptp_init_send_memory_handler (&memhandler, (unsigned char *)&usbdata, wlen);
+ if (ret != PTP_RC_OK) {
+ return ret;
+ }
/* send first part of data */
ret = ptp_write_func(wlen, &memhandler, params->data, &written);
ptp_exit_send_memory_handler (&memhandler);
diff --git a/src/libusb1-glue.c b/src/libusb1-glue.c
index a624159..1323545 100644
--- a/src/libusb1-glue.c
+++ b/src/libusb1-glue.c
@@ -1278,7 +1278,10 @@ ptp_usb_sendreq (PTPParams* params, PTPContainer* req, int dataphase)
usbreq.payload.params.param5=htod32(req->Param5);
/* send it to responder */
towrite = PTP_USB_BULK_REQ_LEN-(sizeof(uint32_t)*(5-req->Nparam));
- ptp_init_send_memory_handler (&memhandler, (unsigned char*)&usbreq, towrite);
+ ret = ptp_init_send_memory_handler (&memhandler, (unsigned char*)&usbreq, towrite);
+ if (ret != PTP_RC_OK) {
+ return ret;
+ }
ret=ptp_write_func(
towrite,
&memhandler,
@@ -1341,7 +1344,10 @@ ptp_usb_senddata (PTPParams* params, PTPContainer* ptp,
if (gotlen != datawlen)
return PTP_RC_GeneralError;
}
- ptp_init_send_memory_handler (&memhandler, (unsigned char *)&usbdata, wlen);
+ ret = ptp_init_send_memory_handler (&memhandler, (unsigned char *)&usbdata, wlen);
+ if (ret != PTP_RC_OK) {
+ return ret;
+ }
/* send first part of data */
ret = ptp_write_func(wlen, &memhandler, params->data, &written);
ptp_exit_send_memory_handler (&memhandler);