Skip to content

Commit 2e0e6c8

Browse files
authored
Merge pull request #83 from daneos/fix_manual_save
Fix manual_save crashes
2 parents f50e616 + 2d8e2a4 commit 2e0e6c8

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

asApp/src/save_restore.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -696,6 +696,11 @@ int manual_save(char *request_file, char *save_file, callbackFunc callbackFuncti
696696
{
697697
op_msg msg;
698698

699+
if ((request_file == NULL) || (strlen(request_file) < 1) || (strlen(request_file) >= OP_MSG_FILENAME_SIZE - 1)) {
700+
printf("manual_save: bad filename\n");
701+
return (-1);
702+
}
703+
699704
if (save_restoreDebug)
700705
printf("manual_save: request_file='%s', save_file='%s', callbackFunction=%p, puserPvt=%p\n", request_file,
701706
save_file, callbackFunction, puserPvt);
@@ -710,6 +715,11 @@ int manual_save(char *request_file, char *save_file, callbackFunc callbackFuncti
710715
}
711716
msg.puserPvt = puserPvt;
712717
msg.callbackFunction = callbackFunction;
718+
719+
if (opMsgQueue == NULL) {
720+
printf("manual_save: message queue not initialized (no restore set has been created?)\n");
721+
return (-1);
722+
}
713723
epicsMessageQueueSend(opMsgQueue, (void *)&msg, OP_MSG_SIZE);
714724
return (0);
715725
}

0 commit comments

Comments
 (0)