From d171d2010a256a46446de5328a0897df3838855a Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Fri, 13 Mar 2015 14:20:05 +0000 Subject: ctdb: Fix CID 1125613 Destination buffer too small Signed-off-by: Volker Lendecke Reviewed-by: Michael Adam Autobuild-User(master): Michael Adam Autobuild-Date(master): Fri Mar 13 19:14:20 CET 2015 on sn-devel-104 --- ctdb/server/eventscript.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'ctdb/server') diff --git a/ctdb/server/eventscript.c b/ctdb/server/eventscript.c index b51d95350db..4dd437924f3 100644 --- a/ctdb/server/eventscript.c +++ b/ctdb/server/eventscript.c @@ -184,7 +184,12 @@ static struct ctdb_scripts_wire *ctdb_get_script_list(struct ctdb_context *ctdb, for (i = 0; i < count; i++) { struct ctdb_script_wire *s = &scripts->scripts[i]; - strcpy(s->name, namelist[i]->d_name); + if (strlcpy(s->name, namelist[i]->d_name, sizeof(s->name)) >= + sizeof(s->name)) { + s->status = -ENAMETOOLONG; + continue; + } + s->status = 0; if (!check_executable(ctdb->event_script_dir, namelist[i]->d_name)) { @@ -335,6 +340,7 @@ static int script_status(struct ctdb_scripts_wire *scripts) for (i = 0; i < scripts->num_scripts; i++) { switch (scripts->scripts[i].status) { + case -ENAMETOOLONG: case -ENOENT: case -ENOEXEC: /* Disabled or missing; that's OK. */ -- cgit v1.2.1