diff options
author | Marcus Meissner <marcus@jet.franken.de> | 2020-01-25 12:19:36 +0100 |
---|---|---|
committer | Marcus Meissner <marcus@jet.franken.de> | 2020-01-25 12:19:36 +0100 |
commit | b1d4f0810028bf74010b11327db470f489af2f75 (patch) | |
tree | d6e8b4c1b159e6ac0d7fd2ec40ea7acb176f7b8b | |
parent | 9d2bb8c1b7440ad3535934c8f4a1b34ed0ef739e (diff) | |
download | libmtp-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.c | 7 |
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; |