mirror of
https://github.com/zadam/trilium.git
synced 2025-03-01 14:22:32 +01:00
verify that the uploaded modified file is temporary
(cherry picked from commit a2711cfb7b5b454182393aa160e45ccbf52c949d)
This commit is contained in:
parent
3035473751
commit
a88bf68eb6
5837
package-lock.json
generated
5837
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -154,12 +154,16 @@ function saveAttachmentToTmpDir(req) {
|
||||
return saveToTmpDir(fileName, content, 'attachments', attachment.attachmentId);
|
||||
}
|
||||
|
||||
const createdTemporaryFiles = new Set();
|
||||
|
||||
function saveToTmpDir(fileName, content, entityType, entityId) {
|
||||
const tmpObj = tmp.fileSync({ postfix: fileName });
|
||||
|
||||
fs.writeSync(tmpObj.fd, content);
|
||||
fs.closeSync(tmpObj.fd);
|
||||
|
||||
createdTemporaryFiles.add(tmpObj.name);
|
||||
|
||||
log.info(`Saved temporary file ${tmpObj.name}`);
|
||||
|
||||
if (utils.isElectron()) {
|
||||
@ -183,6 +187,10 @@ function uploadModifiedFileToNote(req) {
|
||||
const noteId = req.params.noteId;
|
||||
const {filePath} = req.body;
|
||||
|
||||
if (!createdTemporaryFiles.has(filePath)) {
|
||||
throw new ValidationError(`File '${filePath}' is not a temporary file.`);
|
||||
}
|
||||
|
||||
const note = becca.getNoteOrThrow(noteId);
|
||||
|
||||
log.info(`Updating note '${noteId}' with content from '${filePath}'`);
|
||||
|
Loading…
x
Reference in New Issue
Block a user