- MMS server: fixed bug in obtain file service (crash when target directory doesn't exist)

pull/162/head
Michael Zillgith 6 years ago
parent ff54448311
commit 17992e9e09

@ -532,8 +532,12 @@ mmsServer_fileUploadTask(MmsServer self, MmsObtainFileTask task)
IsoConnection_sendMessage(task->connection->isoConnection, response, false); IsoConnection_sendMessage(task->connection->isoConnection, response, false);
FileSystem_closeFile(task->fileHandle); if (task->fileHandle) {
deleteFile(MmsServerConnection_getFilesystemBasepath(task->connection), task->destinationFilename); FileSystem_closeFile(task->fileHandle);
if (task->destinationFilename)
deleteFile(MmsServerConnection_getFilesystemBasepath(task->connection), task->destinationFilename);
}
MmsServer_releaseTransmitBuffer(self); MmsServer_releaseTransmitBuffer(self);
@ -657,15 +661,16 @@ mmsServer_handleObtainFileRequest(
FileHandle fileHandle = openFile(MmsServerConnection_getFilesystemBasepath(connection), FileHandle fileHandle = openFile(MmsServerConnection_getFilesystemBasepath(connection),
destinationFilename, true); destinationFilename, true);
task->connection = connection;
task->obtainFileRequestInvokeId = invokeId;
if (fileHandle == NULL) { if (fileHandle == NULL) {
task->state = MMS_FILE_UPLOAD_STATE_SEND_OBTAIN_FILE_ERROR_DESTINATION; task->state = MMS_FILE_UPLOAD_STATE_SEND_OBTAIN_FILE_ERROR_DESTINATION;
} }
else { else {
/* send file open request */ /* send file open request */
task->lastRequestInvokeId = MmsServerConnection_getNextRequestInvokeId(connection); task->lastRequestInvokeId = MmsServerConnection_getNextRequestInvokeId(connection);
task->connection = connection;
task->fileHandle = fileHandle; task->fileHandle = fileHandle;
task->obtainFileRequestInvokeId = invokeId;
strcpy(task->destinationFilename, destinationFilename); strcpy(task->destinationFilename, destinationFilename);

Loading…
Cancel
Save