#include <unistd.h>
#include <assert.h>
#include <stdlib.h>
+#include <errno.h>
#include "putty.h"
#include "ssh.h"
do {
len *= 2;
disp->hostname = snewn(len, char);
- if (gethostname(disp->hostname, len) < 0) {
+ if ((gethostname(disp->hostname, len) < 0) &&
+ (errno != ENAMETOOLONG)) {
disp->hostname = NULL;
return;
}