From 480a45eaeb0c58ef05a2ea8f43f9d55c9cb95c31 Mon Sep 17 00:00:00 2001 From: Mika Havela Date: Thu, 9 Jul 2009 12:16:06 +0000 Subject: Prevent the user to enter a invalid filename for the graph-conffile --- rrdtool-model.lua | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/rrdtool-model.lua b/rrdtool-model.lua index 98bd807..3feb6ba 100644 --- a/rrdtool-model.lua +++ b/rrdtool-model.lua @@ -250,14 +250,19 @@ value=--start now-3600s --end now --width 680 --height 400 --step 300 DEF... end function set_filedetails (self, filedetails, userid) - if not (string.match(filedetails.value.filename.value, "^" .. graphpath)) then - filedetails.value.filename.value = graphpath .. "/" .. string.gsub(filedetails.value.filename.value,"^.*/", "") - end - if not (string.match(filedetails.value.filename.value, "\.graph$")) then - filedetails.value.filename.value = filedetails.value.filename.value .. ".graph" - end + if filedetails.value.filename.value and (#filedetails.value.filename.value > 0) and not (string.match(filedetails.value.filename.value, ".*/$")) then + if not (string.match(filedetails.value.filename.value, "^" .. graphpath)) then + filedetails.value.filename.value = graphpath .. "/" .. string.gsub(filedetails.value.filename.value,"^.*/", "") + end + if not (string.match(filedetails.value.filename.value, "\.graph$")) then + filedetails.value.filename.value = filedetails.value.filename.value .. ".graph" + end - filedetails = modelfunctions.setfiledetails(filedetails, getgraphlist) + filedetails = modelfunctions.setfiledetails(filedetails, getgraphlist) + else + filedetails.errtxt = "Failed to set file" + filedetails.value.filename.errtxt = "You need to specify a valid filename!" + end filedetails.value.filesize = nil filedetails.value.mtime = nil return filedetails -- cgit v1.2.3