SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
ENDFOREACH(flag)
-SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden")
-SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -g")
+SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden -g -Wall -Werror -Winline")
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
ADD_DEFINITIONS("-DPREFIX=\"${PREFIX}\"")
ADD_DEFINITIONS("-DLOG_TAG=\"${PROJECT_NAME}\"")
#include <unistd.h>
#include <stdlib.h>
#include <fcntl.h>
+#include <sys/time.h>
#include <glib.h>
#include <dlog.h>
result->data->head.seq = s_info.seq++;
result->data->head.type = PACKET_REQ_NOACK;
result->data->head.version = PACKET_VERSION;
- strcpy(result->data->head.command, cmd);
+ strncpy(result->data->head.command, cmd, sizeof(result->data->head.command));
result->data->head.payload_size = 0;
payload_size -= sizeof(*result->data);
va_start(va, fmt);
ptr = fmt;
- while (*ptr) {
+ while (*ptr && offset < packet->data->head.payload_size) {
payload = packet->data->payload + offset;
switch (*ptr) {
case 'i':
struct iovec iov;
int ret;
+ if (!buffer || size <= 0) {
+ ErrPrint("Reject: 0 byte data sending\n");
+ return -1;
+ }
+
memset(&msg, 0, sizeof(msg));
iov.iov_base = (char *)buffer;
iov.iov_len = size;
struct iovec iov;
char control[1024];
- if (!sender_pid)
+ if (!sender_pid || size <= 0 || !buffer)
return -1;
memset(&msg, 0, sizeof(msg));