diff --git a/src/ucd-data-fetch.c b/src/ucd-data-fetch.c index d45ccdf..d27a17d 100644 --- a/src/ucd-data-fetch.c +++ b/src/ucd-data-fetch.c @@ -227,6 +227,13 @@ static int write_lines(int out, FILE *f, size_t cl, const char *prefix) if (write(out, buf, len) < (ssize_t)len) { return 1; } + + /* Make sure this line ends with a newline when we write it */ + if (buf[len-1] != '\n') { + if (write(out, "\n", 1) < (ssize_t)1) { + return 1; + } + } } } @@ -384,13 +391,6 @@ int main(int argc, char *argv[]) { FAIL("write_lines()"); } - /* Write an extra linefeed in case this didn't end with one */ - if (write(out, "\n", 1) < (ssize_t) 1) { - close(out); - fclose(f); - unlink(outpath); - FAIL("write()"); - } close(sockfd); /* reopen socket */ diff --git a/tests/fetch_data/expected b/tests/fetch_data/expected index f29a748..3bb9691 100644 --- a/tests/fetch_data/expected +++ b/tests/fetch_data/expected @@ -6,7 +6,6 @@ ssh_authorized_keys: - SSH_TEST_KEY_STRING_1 - SSH_TEST_KEY_STRING_2 - SSH_TEST_KEY_STRING_3 - hostname: myhostname #cloud-config diff --git a/tests/fetch_data/hostname b/tests/fetch_data/hostname index f162297..14c672e 100644 --- a/tests/fetch_data/hostname +++ b/tests/fetch_data/hostname @@ -1 +1 @@ -myhostname +myhostname \ No newline at end of file