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
diff --git a/mtp/mtp_MtpServer.cpp b/mtp/mtp_MtpServer.cpp
index 5f509eb..96a1e94 100755
--- a/mtp/mtp_MtpServer.cpp
+++ b/mtp/mtp_MtpServer.cpp
@@ -170,11 +170,15 @@
 		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 003dcd1..be6674b 100644
--- a/partitionmanager.cpp
+++ b/partitionmanager.cpp
@@ -2015,6 +2015,8 @@
 	}
 
 	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);