summaryrefslogtreecommitdiff
path: root/compat/win32/syslog.c
diff options
context:
space:
mode:
Diffstat (limited to 'compat/win32/syslog.c')
-rw-r--r--compat/win32/syslog.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/compat/win32/syslog.c b/compat/win32/syslog.c
index b905aea31b..161978d720 100644
--- a/compat/win32/syslog.c
+++ b/compat/win32/syslog.c
@@ -28,13 +28,13 @@ void syslog(int priority, const char *fmt, ...)
va_end(ap);
if (str_len < 0) {
- warning("vsnprintf failed: '%s'", strerror(errno));
+ warning_errno("vsnprintf failed");
return;
}
str = malloc(st_add(str_len, 1));
if (!str) {
- warning("malloc failed: '%s'", strerror(errno));
+ warning_errno("malloc failed");
return;
}
@@ -43,9 +43,11 @@ void syslog(int priority, const char *fmt, ...)
va_end(ap);
while ((pos = strstr(str, "%1")) != NULL) {
+ char *oldstr = str;
str = realloc(str, st_add(++str_len, 1));
if (!str) {
- warning("realloc failed: '%s'", strerror(errno));
+ free(oldstr);
+ warning_errno("realloc failed");
return;
}
memmove(pos + 2, pos + 1, strlen(pos));