From c8b2c02d5e2db2bb14b557866b996d5ad47e41aa Mon Sep 17 00:00:00 2001
From: "Dmitry E. Oboukhov" <unera@debian.org>
Date: Wed, 1 Oct 2014 14:43:41 +0400
Subject: [PATCH] check if snapshot_count has valid value. closes #540

---
 src/box/lua/snapshot_daemon.lua   | 4 ++++
 test/box/snapshot_daemon.result   | 4 ++++
 test/box/snapshot_daemon.test.lua | 2 ++
 3 files changed, 10 insertions(+)

diff --git a/src/box/lua/snapshot_daemon.lua b/src/box/lua/snapshot_daemon.lua
index 312d328f4e..8b8938d2b6 100644
--- a/src/box/lua/snapshot_daemon.lua
+++ b/src/box/lua/snapshot_daemon.lua
@@ -239,6 +239,10 @@ do
             end,
 
             set_snapshot_count = function(snapshot_count)
+                if math.floor(snapshot_count) ~= snapshot_count then
+                    box.error(box.error.PROC_LUA,
+                        "snapshot_count must be integer")
+                end
                 local daemon = box.internal[PREFIX] or daemon
                 log.info("new snapshot count is %s", tostring(snapshot_count))
 
diff --git a/test/box/snapshot_daemon.result b/test/box/snapshot_daemon.result
index e1d0725f16..57e0fd3d52 100644
--- a/test/box/snapshot_daemon.result
+++ b/test/box/snapshot_daemon.result
@@ -112,3 +112,7 @@ PERIOD
 ---
 - 0.03
 ...
+box.cfg{ snapshot_count = .2 }
+---
+- error: snapshot_count must be integer
+...
diff --git a/test/box/snapshot_daemon.test.lua b/test/box/snapshot_daemon.test.lua
index 2701941c23..45aeb441fc 100644
--- a/test/box/snapshot_daemon.test.lua
+++ b/test/box/snapshot_daemon.test.lua
@@ -70,3 +70,5 @@ box.cfg{snapshot_period = 3600 * 4, snapshot_count = 4 }
 space:drop()
 
 PERIOD
+
+box.cfg{ snapshot_count = .2 }
-- 
GitLab