Skip to content

Commit 7b9f5d9

Browse files
authored
Fix memory leaks (#9)
* Fix hex2str memory leak * Fix uninitialized value usage * Fix socket-server memory leak * Fix device info uncertain behavior * Fix event processing memory leak * Fix uninitialized field issue * Fix make dist issues
1 parent 7435440 commit 7b9f5d9

File tree

18 files changed

+102
-48
lines changed

18 files changed

+102
-48
lines changed

Makefile.am

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,5 @@ SUBDIRS = liblogger libdozor dozord tools
33
DISTDIR = $(top_builddir)/dist
44
ACLOCAL_AMFLAGS = -I m4
55

6-
# Override the 'distdir' target
7-
#dist-hook:
8-
# @mkdir -p $(DISTDIR)
9-
# @mv $(top_builddir)/$(PACKAGE)-$(VERSION).tar.gz $(DISTDIR)/
10-
116
clean-local:
127
@echo: This will be run by "make clean"

configure.ac

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@ AC_PROG_CC
99

1010
AC_PROG_MAKE_SET
1111

12-
13-
1412
# Checks for libraries.
1513
AX_PTHREAD
1614

dozord/Makefile.am

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ AUTOMAKE_OPTS = gnu
22
bin_PROGRAMS = dozord
33

44
dozord_SOURCES = main.c nightshift-mqtt.c socket-server.c command.c logger.c app-config.c command.h nightshift-mqtt.h logger.h socket-server.h app-config.h
5-
dozord_LDADD = ../liblogger/liblogger.la ../libdozor/libdozor.la -lpthread -lmosquitto
5+
dozord_LDADD = $(top_builddir)/liblogger/liblogger.la $(top_builddir)/libdozor/libdozor.la -lpthread -lmosquitto
66
dozord_CFLAGS = -pthread
7-
AM_CPPFLAGS = -I../libdozor
7+
dozord_CPPFLAGS = -I$(top_srcdir)/liblogger -I$(top_srcdir)/libdozor
88

99
man_MANS = dozord.8
1010

dozord/logger.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
#include <string.h>
2020
#include <time.h>
2121
#include <sys/time.h>
22-
#include "../liblogger/liblogger.h"
22+
#include "liblogger.h"
2323

2424
void getISODateTime(char* buffer, size_t bufferSize) {
2525
// Get current time

dozord/logger.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
#ifndef LOGGER_H
1818
#define LOGGER_H
1919

20-
#include "../liblogger/liblogger.h"
20+
#include "liblogger.h"
2121

2222
void prettyLogger(LogLevel level, const char* source, const char* message);
2323

dozord/main.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
#include <stdbool.h>
2727
#include <mosquitto.h>
2828
#include <signal.h>
29-
#include <dozor.h>
29+
#include "dozor.h"
3030
#include "command.h"
3131
#include "nightshift-mqtt.h"
3232
#include "logger.h"

dozord/socket-server.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,8 @@ void * connectionCb(void * payload) {
7878
return -1;
7979
}
8080

81+
responsePayload->responseLength = 0;
82+
8183
// @todo handle return value, -1 - error
8284
connInfo->on_message(responsePayload, data, &connInfo->clientIp);
8385

@@ -108,14 +110,14 @@ void * connectionCb(void * payload) {
108110
free(responsePayload);
109111
close(connInfo->sockfd);
110112

111-
free(connInfo);
112-
113113
pthread_mutex_lock(&GlobaSocketLock);
114114
connectionWorkers[connInfo->workerId] = 0;
115115
pthread_mutex_unlock(&GlobaSocketLock);
116-
116+
117117
snprintf(logMessage, sizeof(logMessage), "%s closed", connInfo->clientIp);
118118
prettyLogger(LOG_LEVEL_DEBUG, "TCP", logMessage);
119+
120+
free(connInfo);
119121

120122
pthread_exit(NULL);
121123
}

libdozor/Makefile.am

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@ AUTOMAKE_OPTIONS = gnu
22
lib_LTLIBRARIES = libdozor.la
33

44
libdozor_la_SOURCES = libdozor.c device-event.c dozor-crypto.c rc4.c utils.c event.c dozor-crypto.h event.h device-event.h rc4.h session.h utils.h
5-
libdozor_la_LIBADD = ../liblogger/liblogger.la
5+
libdozor_la_LIBADD = $(top_builddir)/liblogger/liblogger.la
6+
libdozor_la_CPPFLAGS = -I$(top_srcdir)/liblogger
67
include_HEADERS = dozor.h
78

89
libdozor_la_LDFLAGS = -version-info 0:0:0

libdozor/device-event.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
#include <string.h>
2121
#include <inttypes.h>
2222
#include <errno.h>
23-
#include "../liblogger/liblogger.h"
23+
#include "liblogger.h"
2424
#include "device-event.h"
2525

2626
const unsigned char MSGDATASIZE[68] = {
@@ -55,6 +55,8 @@ unsigned short int getDeviceEvents(const uint8_t * raw, long int bufSize, Device
5555
return 64;
5656
}
5757

58+
memset(deviceEvent, 0, sizeof(DeviceEvent));
59+
5860
if (bufSize == 0)
5961
{
6062
logger(LOG_LEVEL_DEBUG, "device-event(getDeviceEvents)", "No events\n");

libdozor/dozor-crypto.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
#include <stdio.h>
1919
#include <inttypes.h>
20-
#include "../liblogger/liblogger.h"
20+
#include "liblogger.h"
2121
#include "dozor-crypto.h"
2222
#include "utils.h"
2323
#include "rc4.h"

0 commit comments

Comments
 (0)