fixed memory leaks

This commit is contained in:
2023-08-14 23:30:54 +02:00
parent 5d82ad37f7
commit fc6ef0f267
11 changed files with 106 additions and 85 deletions

View File

@@ -218,24 +218,24 @@ distuninstallcheck_listfiles = find . -type f -print
am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
| sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
distcleancheck_listfiles = find . -type f -print
ACLOCAL = ${SHELL} /home/ziggi/projects/jcomp/missing aclocal
ACLOCAL = ${SHELL} /home/ziggi/Projects/jcomp/missing aclocal
AMTAR = $${TAR-tar}
AM_DEFAULT_VERBOSITY = 1
APP_CACHEDIR = /home/ziggi/projects/jcomp/cache
APP_CONFIGDIR = /home/ziggi/projects/jcomp/
APP_DATABASEDIR = /home/ziggi/projects/jcomp/data
APP_LIBDIR = /home/ziggi/projects/jcomp/lib
APP_LOGDIR = /home/ziggi/projects/jcomp/log
APP_RUNDIR = /home/ziggi/projects/jcomp/run
APP_CACHEDIR = /home/ziggi/Projects/jcomp/cache
APP_CONFIGDIR = /home/ziggi/Projects/jcomp/
APP_DATABASEDIR = /home/ziggi/Projects/jcomp/data
APP_LIBDIR = /home/ziggi/Projects/jcomp/lib
APP_LOGDIR = /home/ziggi/Projects/jcomp/log
APP_RUNDIR = /home/ziggi/Projects/jcomp/run
APP_USER = ziggi
AUTOCONF = ${SHELL} /home/ziggi/projects/jcomp/missing autoconf
AUTOHEADER = ${SHELL} /home/ziggi/projects/jcomp/missing autoheader
AUTOMAKE = ${SHELL} /home/ziggi/projects/jcomp/missing automake
AUTOCONF = ${SHELL} /home/ziggi/Projects/jcomp/missing autoconf
AUTOHEADER = ${SHELL} /home/ziggi/Projects/jcomp/missing autoheader
AUTOMAKE = ${SHELL} /home/ziggi/Projects/jcomp/missing automake
AWK = gawk
CC = clang
CCDEPMODE = depmode=none
CFLAGS = -g -O2
CP = /bin/cp
CP = /usr/local/bin/gcp
CPPFLAGS =
CYGPATH_W = echo
DEFS = -DHAVE_CONFIG_H
@@ -254,7 +254,7 @@ LDFLAGS =
LIBOBJS =
LIBS =
LTLIBOBJS =
MAKEINFO = ${SHELL} /home/ziggi/projects/jcomp/missing makeinfo
MAKEINFO = ${SHELL} /home/ziggi/Projects/jcomp/missing makeinfo
MKDIR_P = /usr/local/bin/gmkdir -p
OBJEXT = o
PACKAGE = cworker
@@ -268,24 +268,25 @@ PATH_SEPARATOR = :
SET_MAKE =
SHELL = /bin/sh
STRIP =
VALGRIND = /usr/local/bin/valgrind
VERSION = 0.0.1
abs_builddir = /home/ziggi/projects/jcomp
abs_srcdir = /home/ziggi/projects/jcomp
abs_top_builddir = /home/ziggi/projects/jcomp
abs_top_srcdir = /home/ziggi/projects/jcomp
abs_builddir = /home/ziggi/Projects/jcomp
abs_srcdir = /home/ziggi/Projects/jcomp
abs_top_builddir = /home/ziggi/Projects/jcomp
abs_top_srcdir = /home/ziggi/Projects/jcomp
ac_ct_CC = clang
am__include = include
am__leading_dot = .
am__quote =
am__tar = $${TAR-tar} chof - "$$tardir"
am__untar = $${TAR-tar} xf -
app_cachedir = /home/ziggi/projects/jcomp/cache
app_configdir = /home/ziggi/projects/jcomp/
app_databasedir = /home/ziggi/projects/jcomp/data
app_libdir = /home/ziggi/projects/jcomp/lib
app_logdir = /home/ziggi/projects/jcomp/log
app_cachedir = /home/ziggi/Projects/jcomp/cache
app_configdir = /home/ziggi/Projects/jcomp/
app_databasedir = /home/ziggi/Projects/jcomp/data
app_libdir = /home/ziggi/Projects/jcomp/lib
app_logdir = /home/ziggi/Projects/jcomp/log
app_name = cworker
app_rundir = /home/ziggi/projects/jcomp/run
app_rundir = /home/ziggi/Projects/jcomp/run
app_user = ziggi
bindir = ${exec_prefix}/bin
build = amd64-unknown-freebsd12.4
@@ -307,7 +308,7 @@ host_vendor = unknown
htmldir = ${docdir}
includedir = ${prefix}/include
infodir = ${datarootdir}/info
install_sh = ${SHELL} /home/ziggi/projects/jcomp/install-sh
install_sh = ${SHELL} /home/ziggi/Projects/jcomp/install-sh
libdir = ${exec_prefix}/lib
libexecdir = ${exec_prefix}/libexec
localedir = ${datarootdir}/locale
@@ -353,6 +354,7 @@ common_SOURCES = \
rcache.c \
rcache.h
#VALGRIND_OPT = --tool=memcheck
bin_TESTS = \
cflexer_test \
cfparser_test \
@@ -875,9 +877,9 @@ run: $(sbin_PROGRAMS)
test: $(bin_TESTS)
@for test in $(bin_TESTS); do \
echo === Test $${test} ==; \
./$${test}; \
echo === Done $${test} ==; \
echo ======= Test $${test} ======; \
$(VALGRIND) $(VALGRIND_OPT) ./$${test}; \
echo ====== Done $${test} ======; \
done
clean-local:

View File

@@ -37,11 +37,15 @@ common_SOURCES = \
run: $(sbin_PROGRAMS)
./cworker
if HAVE_VALGRIND
VALGRIND_OPT = --tool=memcheck
endif
test: $(bin_TESTS)
@for test in $(bin_TESTS); do \
echo === Test $${test} ==; \
./$${test}; \
echo === Done $${test} ==; \
echo ======= Test $${test} ======; \
$(VALGRIND) $(VALGRIND_OPT) ./$${test}; \
echo ====== Done $${test} ======; \
done
bin_TESTS = \

View File

@@ -268,6 +268,7 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
VALGRIND = @VALGRIND@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
@@ -353,6 +354,7 @@ common_SOURCES = \
rcache.c \
rcache.h
@HAVE_VALGRIND_TRUE@VALGRIND_OPT = --tool=memcheck
bin_TESTS = \
cflexer_test \
cfparser_test \
@@ -875,9 +877,9 @@ run: $(sbin_PROGRAMS)
test: $(bin_TESTS)
@for test in $(bin_TESTS); do \
echo === Test $${test} ==; \
./$${test}; \
echo === Done $${test} ==; \
echo ======= Test $${test} ======; \
$(VALGRIND) $(VALGRIND_OPT) ./$${test}; \
echo ====== Done $${test} ======; \
done
clean-local:

View File

@@ -21,12 +21,11 @@ int main(void) {
MASSERT(fd > 0);
rcache_t cache;
rcache_init(&cache, fd);
cflexer_t lexer;
cflexer_init(&lexer, &cache);
cfparser_t parser;
rcache_init(&cache, fd);
cflexer_init(&lexer, &cache);
cfparser_init(&parser, &lexer);
if (cfparser_parse(&parser)) {
@@ -35,12 +34,14 @@ int main(void) {
}
int64_t id = 0;
cfparser_bind(&parser, CFVALTYPE_INT, "id", (void *)&id);
char* name = "";
cfparser_bind(&parser, CFVALTYPE_INT, "id", (void *)&id);
cfparser_bind(&parser, CFVALTYPE_STR, "name", (void *)&name);
cfparser_destroy(&parser);
cflexer_destroy(&lexer);
rcache_destroy(&cache);
MASSERT(id == -123);
MASSERT(strcmp(name, "qwerty\"567") == 0);

View File

@@ -20,19 +20,15 @@ int main(void) {
int argc = 3;
cllexer_t lexer;
cllexer_init(&lexer);
clparser_t parser;
cllexer_init(&lexer);
clparser_init(&parser, &lexer);
int id = 0;
clparser_bind(&parser, CLTYPE_INT, "id", (void *)&id);
char* name = "";
clparser_bind(&parser, CLTYPE_INT, "id", (void *)&id);
clparser_bind(&parser, CLTYPE_STR, "name", (void *)&name);
if (clparser_parse(&parser, &argv[1], argc - 1) < 0) {
@@ -45,5 +41,8 @@ int main(void) {
clparser_destroy(&parser);
cllexer_destroy(&lexer);
free(name);
return 0;
}

View File

@@ -2,8 +2,8 @@
#ifndef CONFIG_H_QWER
#define CONFIG_H_QWER
static const char *srv_runpath = "/home/ziggi/projects/jcomp/run/cworker.pid";
static const char *srv_logpath = "/home/ziggi/projects/jcomp/log/cworker.log";
static const char *srv_configpath = "/home/ziggi/projects/jcomp//cworker.conf";
static const char *srv_runpath = "/home/ziggi/Projects/jcomp/run/cworker.pid";
static const char *srv_logpath = "/home/ziggi/Projects/jcomp/log/cworker.log";
static const char *srv_configpath = "/home/ziggi/Projects/jcomp//cworker.conf";
#endif

View File

@@ -430,7 +430,7 @@ Copyright (C) 2021 Free Software Foundation, Inc.
This config.status script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it."
ac_pwd='/home/ziggi/projects/jcomp'
ac_pwd='/home/ziggi/Projects/jcomp'
srcdir='.'
INSTALL='/usr/bin/install -c'
MKDIR_P='/usr/local/bin/gmkdir -p'
@@ -612,27 +612,27 @@ S["am__EXEEXT_FALSE"]=""
S["am__EXEEXT_TRUE"]="#"
S["LTLIBOBJS"]=""
S["app_name"]="cworker"
S["app_cachedir"]="/home/ziggi/projects/jcomp/cache"
S["APP_CACHEDIR"]="/home/ziggi/projects/jcomp/cache"
S["app_databasedir"]="/home/ziggi/projects/jcomp/data"
S["APP_DATABASEDIR"]="/home/ziggi/projects/jcomp/data"
S["app_cachedir"]="/home/ziggi/Projects/jcomp/cache"
S["APP_CACHEDIR"]="/home/ziggi/Projects/jcomp/cache"
S["app_databasedir"]="/home/ziggi/Projects/jcomp/data"
S["APP_DATABASEDIR"]="/home/ziggi/Projects/jcomp/data"
S["app_user"]="ziggi"
S["APP_USER"]="ziggi"
S["app_libdir"]="/home/ziggi/projects/jcomp/lib"
S["APP_LIBDIR"]="/home/ziggi/projects/jcomp/lib"
S["app_rundir"]="/home/ziggi/projects/jcomp/run"
S["APP_RUNDIR"]="/home/ziggi/projects/jcomp/run"
S["app_logdir"]="/home/ziggi/projects/jcomp/log"
S["APP_LOGDIR"]="/home/ziggi/projects/jcomp/log"
S["app_configdir"]="/home/ziggi/projects/jcomp/"
S["APP_CONFIGDIR"]="/home/ziggi/projects/jcomp/"
S["app_libdir"]="/home/ziggi/Projects/jcomp/lib"
S["APP_LIBDIR"]="/home/ziggi/Projects/jcomp/lib"
S["app_rundir"]="/home/ziggi/Projects/jcomp/run"
S["APP_RUNDIR"]="/home/ziggi/Projects/jcomp/run"
S["app_logdir"]="/home/ziggi/Projects/jcomp/log"
S["APP_LOGDIR"]="/home/ziggi/Projects/jcomp/log"
S["app_configdir"]="/home/ziggi/Projects/jcomp/"
S["APP_CONFIGDIR"]="/home/ziggi/Projects/jcomp/"
S["SYSTEMD_FALSE"]=""
S["SYSTEMD_TRUE"]="#"
S["LINUX_OS_FALSE"]=""
S["LINUX_OS_TRUE"]="#"
S["FREEBSD_OS_FALSE"]="#"
S["FREEBSD_OS_TRUE"]=""
S["CP"]="/bin/cp"
S["CP"]="/usr/local/bin/gcp"
S["HAVE_CP"]="true"
S["LIBOBJS"]=""
S["host_os"]="freebsd12.4"
@@ -643,6 +643,9 @@ S["build_os"]="freebsd12.4"
S["build_vendor"]="unknown"
S["build_cpu"]="amd64"
S["build"]="amd64-unknown-freebsd12.4"
S["HAVE_VALGRIND_FALSE"]=""
S["HAVE_VALGRIND_TRUE"]="#"
S["VALGRIND"]="/usr/local/bin/valgrind"
S["am__fastdepCC_FALSE"]=""
S["am__fastdepCC_TRUE"]="#"
S["CCDEPMODE"]="depmode=none"
@@ -673,12 +676,12 @@ S["mkdir_p"]="$(MKDIR_P)"
S["MKDIR_P"]="/usr/local/bin/gmkdir -p"
S["INSTALL_STRIP_PROGRAM"]="$(install_sh) -c -s"
S["STRIP"]=""
S["install_sh"]="${SHELL} /home/ziggi/projects/jcomp/install-sh"
S["MAKEINFO"]="${SHELL} /home/ziggi/projects/jcomp/missing makeinfo"
S["AUTOHEADER"]="${SHELL} /home/ziggi/projects/jcomp/missing autoheader"
S["AUTOMAKE"]="${SHELL} /home/ziggi/projects/jcomp/missing automake"
S["AUTOCONF"]="${SHELL} /home/ziggi/projects/jcomp/missing autoconf"
S["ACLOCAL"]="${SHELL} /home/ziggi/projects/jcomp/missing aclocal"
S["install_sh"]="${SHELL} /home/ziggi/Projects/jcomp/install-sh"
S["MAKEINFO"]="${SHELL} /home/ziggi/Projects/jcomp/missing makeinfo"
S["AUTOHEADER"]="${SHELL} /home/ziggi/Projects/jcomp/missing autoheader"
S["AUTOMAKE"]="${SHELL} /home/ziggi/Projects/jcomp/missing automake"
S["AUTOCONF"]="${SHELL} /home/ziggi/Projects/jcomp/missing autoconf"
S["ACLOCAL"]="${SHELL} /home/ziggi/Projects/jcomp/missing aclocal"
S["VERSION"]="0.0.1"
S["PACKAGE"]="cworker"
S["CYGPATH_W"]="echo"
@@ -810,13 +813,13 @@ D["HAVE_MEMSET"]=" 1"
D["HAVE_MKDIR"]=" 1"
D["HAVE_SETLOCALE"]=" 1"
D["HAVE_SOCKET"]=" 1"
D["APP_CONFIGDIR"]=" \"/home/ziggi/projects/jcomp/\""
D["APP_LOGDIR"]=" \"/home/ziggi/projects/jcomp/log\""
D["APP_RUNDIR"]=" \"/home/ziggi/projects/jcomp/run\""
D["APP_LIBDIR"]=" \"/home/ziggi/projects/jcomp/lib\""
D["APP_CONFIGDIR"]=" \"/home/ziggi/Projects/jcomp/\""
D["APP_LOGDIR"]=" \"/home/ziggi/Projects/jcomp/log\""
D["APP_RUNDIR"]=" \"/home/ziggi/Projects/jcomp/run\""
D["APP_LIBDIR"]=" \"/home/ziggi/Projects/jcomp/lib\""
D["APP_USER"]=" \"ziggi\""
D["APP_DATABASEDIR"]=" \"/home/ziggi/projects/jcomp/data\""
D["APP_CACHEDIR"]=" \"/home/ziggi/projects/jcomp/cache\""
D["APP_DATABASEDIR"]=" \"/home/ziggi/Projects/jcomp/data\""
D["APP_CACHEDIR"]=" \"/home/ziggi/Projects/jcomp/cache\""
for (key in D) D_is_set[key] = 1
FS = ""
}

View File

@@ -19,6 +19,11 @@ AC_TYPE_PID_T
AC_TYPE_SSIZE_T
AC_STRUCT_TIMEZONE
AC_PATH_PROG([VALGRIND],[valgrind true])
AM_CONDITIONAL(HAVE_VALGRIND, [test "x$VALGRIND" = "xvalgrind"])
# Checks for library functions.
AC_FUNC_FORK
AC_FUNC_MALLOC
@@ -49,7 +54,7 @@ AC_CHECK_PROG(HAVE_CP, cp, true, false, /bin /usr/local/bin /usr/bin)
if test "x$HAVE_CP" = "xfalse"; then
AC_MSG_ERROR([Requested program cp not found])
fi
AC_PATH_PROG([CP],[cp cp])
AC_PATH_PROG([CP],[gcp cp])
AC_PROG_INSTALL
AC_CANONICAL_HOST

View File

@@ -2,22 +2,22 @@
/* defines.h.in. Generated from configure.ac by autoheader. */
/* location of cache dir */
#define APP_CACHEDIR "/home/ziggi/projects/jcomp/cache"
#define APP_CACHEDIR "/home/ziggi/Projects/jcomp/cache"
/* location of configuration files for ${PACKAGE} */
#define APP_CONFIGDIR "/home/ziggi/projects/jcomp/"
#define APP_CONFIGDIR "/home/ziggi/Projects/jcomp/"
/* location of database dir */
#define APP_DATABASEDIR "/home/ziggi/projects/jcomp/data"
#define APP_DATABASEDIR "/home/ziggi/Projects/jcomp/data"
/* location of libs */
#define APP_LIBDIR "/home/ziggi/projects/jcomp/lib"
#define APP_LIBDIR "/home/ziggi/Projects/jcomp/lib"
/* location of ${PACKAGE} logdir */
#define APP_LOGDIR "/home/ziggi/projects/jcomp/log"
#define APP_LOGDIR "/home/ziggi/Projects/jcomp/log"
/* location of pid file */
#define APP_RUNDIR "/home/ziggi/projects/jcomp/run"
#define APP_RUNDIR "/home/ziggi/Projects/jcomp/run"
/* effective user */
#define APP_USER "ziggi"

View File

@@ -99,6 +99,7 @@ int jparser_parse(jparser_t * parser) {
kv->type = JVALTYPE_STR;
kv->str = val;
}
free(key);
parser->kvalsize++;
pos++;
break;
@@ -140,5 +141,10 @@ int jparser_bind(jparser_t* parser, int type, char* key, void* ref) {
}
void jparser_destroy(jparser_t * parser) {
for (int i = 0; i < parser->kvalsize; i++) {
if (parser->kvalarr[i].type == JVALTYPE_STR) {
free(parser->kvalarr[i].str);
}
}
free(parser->kvalarr);
}

View File

@@ -22,16 +22,14 @@ int main(void) {
MASSERT(fd > 0);
rcache_t cache;
rcache_init(&cache, fd);
jlexer_t lexer;
jlexer_init(&lexer, &cache);
jparser_t parser;
rcache_init(&cache, fd);
jlexer_init(&lexer, &cache);
jparser_init(&parser, &lexer);
if (jparser_parse(&parser) < 0) {
@@ -58,6 +56,7 @@ int main(void) {
jparser_destroy(&parser);
jlexer_destroy(&lexer);
rcache_destroy(&cache);
free(name);
return 0;
}