3866. [bug] Named could die on disk full in generate_session_key.

[RT #36119]
This commit is contained in:
Mark Andrews 2014-05-30 14:38:39 +10:00
parent 536da846f6
commit fa6308bd57
2 changed files with 10 additions and 2 deletions

View file

@ -1,3 +1,6 @@
3866. [bug] Named could die on disk full in generate_session_key.
[RT #36119]
3865. [test] Improved testability of the red-black tree
implementation and added unit tests. [RT #35904]

View file

@ -5097,8 +5097,8 @@ generate_session_key(const char *filename, const char *keynamestr,
(int) isc_buffer_usedlength(&key_txtbuffer),
(char*) isc_buffer_base(&key_txtbuffer));
RUNTIME_CHECK(isc_stdio_flush(fp) == ISC_R_SUCCESS);
RUNTIME_CHECK(isc_stdio_close(fp) == ISC_R_SUCCESS);
CHECK(isc_stdio_flush(fp));
CHECK(isc_stdio_close(fp));
dst_key_free(&key);
@ -5111,6 +5111,11 @@ generate_session_key(const char *filename, const char *keynamestr,
NS_LOGMODULE_SERVER, ISC_LOG_ERROR,
"failed to generate session key "
"for dynamic DNS: %s", isc_result_totext(result));
if (fp != NULL) {
if (isc_file_exists(filename))
(void)isc_file_remove(filename);
(void)isc_stdio_close(fp);
}
if (tsigkey != NULL)
dns_tsigkey_detach(&tsigkey);
if (key != NULL)