#include "watchdog/watchdog.h"
#include "watchdog/wd_ext.h"
+#define WD_MAX_PING_RESULT 256
+
static void * exec_ping(void * arg);
static double get_result (char * ping_data);
char * args[8];
int pid, i = 0;
int r_size = 0;
- char result[256];
+ char result[WD_MAX_PING_RESULT];
char ping_path[WD_MAX_PATH_LEN];
snprintf(ping_path,sizeof(ping_path),"%s/ping",pool_config->ping_path);
}
i = 0;
- while (( (r_size = read (pfd[0], &result[i], sizeof(result)-i)) > 0) && (errno == EINTR))
+ while (( (r_size = read (pfd[0], &result[i], sizeof(result)-i-1)) > 0) && (errno == EINTR))
{
i += r_size;
}
+ result[sizeof(result)-1] = '\0';
close(pfd[0]);
}