summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcus Meissner <marcus@jet.franken.de>2020-01-25 12:19:36 +0100
committerMarcus Meissner <marcus@jet.franken.de>2020-01-25 12:19:36 +0100
commitb1d4f0810028bf74010b11327db470f489af2f75 (patch)
treed6e8b4c1b159e6ac0d7fd2ec40ea7acb176f7b8b
parent9d2bb8c1b7440ad3535934c8f4a1b34ed0ef739e (diff)
downloadlibmtp-b1d4f0810028bf74010b11327db470f489af2f75.tar.gz
check for valid id / NULL mtpfile
https://sourceforge.net/p/libmtp/bugs/1866/ not clear why it happens though
-rw-r--r--src/libmtp.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/libmtp.c b/src/libmtp.c
index 613a642..1326992 100644
--- a/src/libmtp.c
+++ b/src/libmtp.c
@@ -9082,6 +9082,13 @@ int LIBMTP_GetPartialObject(LIBMTP_mtpdevice_t *device, uint32_t const id,
uint16_t ret;
LIBMTP_file_t *mtpfile = LIBMTP_Get_Filemetadata(device, id);
+ if (!mtpfile) {
+ add_error_to_errorstack(device, LIBMTP_ERROR_GENERAL,
+ "LIBMTP_GetPartialObject: could not find mtpfile");
+ *size = 0;
+ return -1;
+ }
+
/* Some devices do not like reading over the end and hang instead of progressing */
if (offset >= mtpfile->filesize) {
*size = 0;