lib: Avoid a memleak in pidfile_unlink()
authorVolker Lendecke <vl@samba.org>
Sat, 13 Feb 2021 21:19:42 +0000 (22:19 +0100)
committerJeremy Allison <jra@samba.org>
Tue, 9 Mar 2021 22:36:28 +0000 (22:36 +0000)
Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
lib/util/pidfile.c

index bcd25fb4ba39e2ab9b70408afa63437e1701d22c..b7daa089223d04634b1e82193e18b78786772bca 100644 (file)
@@ -208,13 +208,12 @@ void pidfile_create(const char *piddir, const char *name)
 
 void pidfile_unlink(const char *piddir, const char *name)
 {
+       size_t len = strlen(piddir) + strlen(name) + 6;
+       char pidFile[len];
        int ret;
-       char *pidFile = NULL;
 
-       if (asprintf(&pidFile, "%s/%s.pid", piddir, name) < 0) {
-               DEBUG(0,("ERROR: Out of memory\n"));
-               exit(1);
-       }
+       snprintf(pidFile, sizeof(pidFile), "%s/%s.pid", piddir, name);
+
        ret = unlink(pidFile);
        if (ret == -1) {
                DEBUG(0,("Failed to delete pidfile %s. Error was %s\n",