From 4bfabab005bac62373b80407136b75509b8b57db Mon Sep 17 00:00:00 2001 From: Ethan Yonker Date: Mon, 29 Dec 2014 09:15:37 -0600 Subject: Check for valid MTP_Storage_ID before adding or removing Attempting to add a storage ID of 0 was causing a seg fault. Change-Id: If8797186405be36ee70dbca63bd1063a62ba2812 --- mtp/mtp_MtpServer.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'mtp/mtp_MtpServer.cpp') diff --git a/mtp/mtp_MtpServer.cpp b/mtp/mtp_MtpServer.cpp index 5f509eb0d..96a1e9453 100755 --- a/mtp/mtp_MtpServer.cpp +++ b/mtp/mtp_MtpServer.cpp @@ -170,11 +170,15 @@ int twmtp_MtpServer::mtppipe_thread(void) if (read_count == sizeof(mtp_message)) { if (mtp_message.message_type == MTP_MESSAGE_ADD_STORAGE) { MTPI("mtppipe add storage %i '%s'\n", mtp_message.storage_id, mtp_message.path); - long reserveSpace = 1; - bool removable = false; - MtpStorage* storage = new MtpStorage(mtp_message.storage_id, mtp_message.path, mtp_message.display, reserveSpace, removable, mtp_message.maxFileSize, refserver); - server->addStorage(storage); - MTPD("mtppipe done adding storage\n"); + if (mtp_message.storage_id) { + long reserveSpace = 1; + bool removable = false; + MtpStorage* storage = new MtpStorage(mtp_message.storage_id, mtp_message.path, mtp_message.display, reserveSpace, removable, mtp_message.maxFileSize, refserver); + server->addStorage(storage); + MTPD("mtppipe done adding storage\n"); + } else { + MTPE("Invalid storage ID %i specified\n", mtp_message.storage_id); + } } else if (mtp_message.message_type == MTP_MESSAGE_REMOVE_STORAGE) { MTPI("mtppipe remove storage %i\n", mtp_message.storage_id); remove_storage(mtp_message.storage_id); -- cgit v1.2.3