summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcus Meissner <meissner@suse.de>2023-03-20 10:02:10 +0100
committerMarcus Meissner <meissner@suse.de>2023-03-20 10:02:10 +0100
commit1023cf7d1665d65b079d9898103ad31f3dd1d525 (patch)
tree5576d489779d5633a8308d1a17b1e3b9ae141e6e
parentcac90d8e10f752932bbe39242faacb1810c4f326 (diff)
downloadlibmtp-1023cf7d1665d65b079d9898103ad31f3dd1d525.tar.gz
merge from chromium fork
avoid conversion of string longer than we can converse https://source.chromium.org/chromiumos/chromiumos/codesearch/+/main:src/third_party/chromiumos-overlay/media-libs/libmtp/files/libmtp-1.1.20-24_update_ptp_ucs2str_reader.patch
-rw-r--r--src/ptp-pack.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/ptp-pack.c b/src/ptp-pack.c
index 381326f..8e8aa29 100644
--- a/src/ptp-pack.c
+++ b/src/ptp-pack.c
@@ -213,6 +213,9 @@ ptp_pack_string(PTPParams *params, char *string, unsigned char* data, uint16_t o
char *ucs2strp = (char *) ucs2str;
size_t convlen = strlen(string);
+ if (convlen > PTP_MAXSTRLEN) {
+ convlen = PTP_MAXSTRLEN;
+ }
/* Cannot exceed 255 (PTP_MAXSTRLEN) since it is a single byte, duh ... */
memset(ucs2strp, 0, sizeof(ucs2str)); /* XXX: necessary? */
#if defined(HAVE_ICONV) && defined(HAVE_LANGINFO_H)