diff options
-rwxr-xr-x | mtp/mtp_MtpServer.cpp | 14 | ||||
-rw-r--r-- | partitionmanager.cpp | 2 |
2 files changed, 11 insertions, 5 deletions
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); diff --git a/partitionmanager.cpp b/partitionmanager.cpp index 003dcd1f3..be6674b88 100644 --- a/partitionmanager.cpp +++ b/partitionmanager.cpp @@ -2015,6 +2015,8 @@ bool TWPartitionManager::Add_Remove_MTP_Storage(TWPartition* Part, int message_t } if (Part) { + if (Part->MTP_Storage_ID == 0) + return false; if (message_type == MTP_MESSAGE_REMOVE_STORAGE) { mtp_message.message_type = MTP_MESSAGE_REMOVE_STORAGE; // Remove LOGINFO("sending message to remove %i\n", Part->MTP_Storage_ID); |