Module: check_mk
Branch: master
Commit: 81e1d41e7a2774ceca516dfa42a6a13bef56a1a5
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=81e1d41e7a2774…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Tue Nov 15 10:53:00 2011 +0100
Windows agent: do not execute .txt or .dir
---
agents/windows/check_mk_agent.cc | 13 ++++++++++++-
agents/windows/check_mk_agent.exe | Bin 99840 -> 99840 bytes
2 files changed, 12 insertions(+), 1 deletions(-)
diff --git a/agents/windows/check_mk_agent.cc b/agents/windows/check_mk_agent.cc
index 78d2639..ed62e27 100755
--- a/agents/windows/check_mk_agent.cc
+++ b/agents/windows/check_mk_agent.cc
@@ -1244,6 +1244,17 @@ char *add_interpreter(char *path, char *newpath)
}
}
+bool banned_exec_name(char *name)
+{
+ if (strlen(name) < 5)
+ return false;
+
+ char *extension = name + strlen(name) - 4;
+ return (
+ strcasecmp(extension, ".dir")
+ || strcasecmp(extension, ".txt"));
+}
+
void run_plugin(SOCKET &out, char *path)
{
char newpath[256];
@@ -1267,7 +1278,7 @@ void run_external_programs(SOCKET &out, char *dirname)
struct dirent *de;
while (0 != (de = readdir(dir))) {
char *name = de->d_name;
- if (name[0] != '.') {
+ if (name[0] != '.' && !banned_exec_name(name)) {
snprintf(path, sizeof(path), "%s\\%s", dirname, name);
run_plugin(out, path);
}
diff --git a/agents/windows/check_mk_agent.exe b/agents/windows/check_mk_agent.exe
index 4cf9402..ff8c033 100755
Binary files a/agents/windows/check_mk_agent.exe and b/agents/windows/check_mk_agent.exe
differ