diff --git a/appl/kx/common.c b/appl/kx/common.c index 32b0584d5..6122d04da 100644 --- a/appl/kx/common.c +++ b/appl/kx/common.c @@ -264,11 +264,13 @@ create_and_write_cookie (char *xauthfile, auth.data = (char*)cookie; des_rand_data (cookie, sz); - strncpy(xauthfile, "/tmp/AXXXXX", size); + strncpy(xauthfile, "/tmp/AXXXXXX", size); xauthfile[size-1] = 0; fd = mkstemp(xauthfile); - if(fd < 0) - return 1; + if(fd < 0) { + syslog(LOG_ERR, "create_and_write_cookie: mkstemp: %m"); + return 1; + } f = fdopen(fd, "r+"); if(f == NULL){ close(fd); diff --git a/appl/kx/kxd.c b/appl/kx/kxd.c index 205972763..6bfcb2156 100644 --- a/appl/kx/kxd.c +++ b/appl/kx/kxd.c @@ -365,8 +365,14 @@ doit(int sock, int tcpp) else snprintf (display, display_size, ":%u", display_num); if(create_and_write_cookie (xauthfile, xauthfile_size, - cookie, cookie_len)) - return 1; + cookie, cookie_len)) { + syslog(LOG_ERR, "create_and_write_cookie: %m"); + fatal (sock, &key, schedule, &me, &him, + "Cookie-creation failed with: %s", + strerror(errno)); + cleanup(); + return 1; + } p = msg; *p++ = ACK; @@ -382,6 +388,7 @@ doit(int sock, int tcpp) if(write_encrypted (sock, msg, p - msg, schedule, &key, &me, &him) < 0) { syslog (LOG_ERR, "write: %m"); + cleanup(); return 1; } for (;;) {