Check fclose(3) writes correctly, thanks to Bob.

This commit is contained in:
Roy Marples 2015-06-12 09:54:09 +00:00
parent a175f2b7dd
commit 32897869f1
3 changed files with 6 additions and 4 deletions

4
auth.c
View File

@ -415,7 +415,8 @@ get_next_rdm_monotonic_counter(struct auth *auth)
rdm++;
if (fseek(fp, 0, SEEK_SET) == -1 ||
ftruncate(fileno(fp), 0) == -1 ||
fprintf(fp, "0x%016" PRIu64 "\n", rdm) != 19)
fprintf(fp, "0x%016" PRIu64 "\n", rdm) != 19 ||
fflush(fp) == EOF)
{
if (!auth->last_replay_set) {
auth->last_replay = rdm;
@ -424,7 +425,6 @@ get_next_rdm_monotonic_counter(struct auth *auth)
rdm = ++auth->last_replay;
/* report error? */
}
fflush(fp);
#ifdef LOCK_EX
if (flocked == 0)
flock(fileno(fp), LOCK_UN);

3
duid.c
View File

@ -140,7 +140,8 @@ duid_get(unsigned char *d, const struct interface *ifp)
}
len = duid_make(d, ifp, DUID_LLT);
x = fprintf(fp, "%s\n", hwaddr_ntoa(d, len, line, sizeof(line)));
fclose(fp);
if (fclose(fp) == EOF)
x = -1;
/* Failed to write the duid? scrub it, we cannot use it */
if (x < 1) {
logger(ifp->ctx, LOG_ERR, "error writing DUID: %s: %m", DUID);

3
ipv6.c
View File

@ -251,7 +251,8 @@ ipv6_readsecret(struct dhcpcd_ctx *ctx)
goto eexit;
x = fprintf(fp, "%s\n",
hwaddr_ntoa(ctx->secret, ctx->secret_len, line, sizeof(line)));
fclose(fp);
if (fclose(fp) == EOF)
x = -1;
if (x > 0)
return (ssize_t)ctx->secret_len;