X-Git-Url: http://git.iain.cx/?a=blobdiff_plain;f=io.cpp;h=508d7db1ccb0c3d8fc440061e451b66f9487201e;hb=ac3246ff809b060c2be8e0c004e294f0d00e210d;hp=90cc0d145a6eb33e2668dbd0fe939fd75f82ee85;hpb=f7f20a0b3ecbb0e1a2eb59f95b50f0625b37c671;p=nssm.git diff --git a/io.cpp b/io.cpp index 90cc0d1..508d7db 100644 --- a/io.cpp +++ b/io.cpp @@ -518,9 +518,9 @@ unsigned long WINAPI log_and_rotate(void *arg) { /* Write up to the newline. */ ret = try_write(logger, address, i, &out, &complained); if (ret < 0) { - HeapFree(GetProcessHeap(), 0, logger); CloseHandle(logger->read_handle); CloseHandle(logger->write_handle); + HeapFree(GetProcessHeap(), 0, logger); return 3; } size += (__int64) out; @@ -574,9 +574,9 @@ unsigned long WINAPI log_and_rotate(void *arg) { error = GetLastError(); log_event(EVENTLOG_ERROR_TYPE, NSSM_EVENT_CREATEFILE_FAILED, logger->path, error_string(error), 0); /* Oh dear. Now we can't log anything further. */ - HeapFree(GetProcessHeap(), 0, logger); CloseHandle(logger->read_handle); CloseHandle(logger->write_handle); + HeapFree(GetProcessHeap(), 0, logger); return 4; } @@ -600,15 +600,15 @@ unsigned long WINAPI log_and_rotate(void *arg) { ret = try_write(logger, address, in, &out, &complained); size += (__int64) out; if (ret < 0) { - HeapFree(GetProcessHeap(), 0, logger); CloseHandle(logger->read_handle); CloseHandle(logger->write_handle); + HeapFree(GetProcessHeap(), 0, logger); return 3; } } - HeapFree(GetProcessHeap(), 0, logger); CloseHandle(logger->read_handle); CloseHandle(logger->write_handle); + HeapFree(GetProcessHeap(), 0, logger); return 0; }