Browse Source

tools: Fixed unchecked *strrchr in a couple places.

tools/ccan_depends --compile ccan/module (without a trailing slash)
results in a segfault.
Joey Adams 15 years ago
parent
commit
5079b95c11
2 changed files with 4 additions and 2 deletions
  1. 2 1
      tools/ccanlint/compulsory_tests/depends_exist.c
  2. 2 1
      tools/depends.c

+ 2 - 1
tools/ccanlint/compulsory_tests/depends_exist.c

@@ -41,7 +41,8 @@ static void check_depends_exist(struct manifest *m,
 	char **deps;
 	char *updir = talloc_strdup(m, m->dir);
 
-	*strrchr(updir, '/') = '\0';
+	if (strrchr(updir, '/'))
+		*strrchr(updir, '/') = '\0';
 
 	if (safe_mode)
 		deps = get_safe_ccan_deps(m, m->dir, true,

+ 2 - 1
tools/depends.c

@@ -59,7 +59,8 @@ static char *compile_info(const void *ctx, const char *dir)
 		return NULL;
 
 	ccandir = talloc_dirname(ctx, dir);
-	*strrchr(ccandir, '/') = '\0';
+	if (strrchr(ccandir, '/'))
+		*strrchr(ccandir, '/') = '\0';
 
 	compiled = maybe_temp_file(ctx, "", false, "info");
 	if (compile_and_link(ctx, info_c_file, ccandir, "",