From ce743b205884853526709aff2b784ea67dd80daa Mon Sep 17 00:00:00 2001
From: Tiago Cunha <tcunha@gmx.com>
Date: Wed, 28 Oct 2009 23:08:52 +0000
Subject: [PATCH] Sync OpenBSD patchset 464:

Reset the umask right after fopen to avoid leaving it changed on error, noticed
by deraadt@.
---
 cmd-save-buffer.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/cmd-save-buffer.c b/cmd-save-buffer.c
index ca11bae4..cd269d15 100644
--- a/cmd-save-buffer.c
+++ b/cmd-save-buffer.c
@@ -1,4 +1,4 @@
-/* $Id: cmd-save-buffer.c,v 1.8 2009-09-07 23:48:54 tcunha Exp $ */
+/* $Id: cmd-save-buffer.c,v 1.9 2009-10-28 23:08:52 tcunha Exp $ */
 
 /*
  * Copyright (c) 2009 Tiago Cunha <me@tiagocunha.org>
@@ -70,6 +70,7 @@ cmd_save_buffer_exec(struct cmd *self, struct cmd_ctx *ctx)
 		f = fopen(data->arg, "ab");
 	else
 		f = fopen(data->arg, "wb");
+	umask(mask);
 	if (f == NULL) {
 		ctx->error(ctx, "%s: %s", data->arg, strerror(errno));
 		return (-1);
@@ -82,7 +83,6 @@ cmd_save_buffer_exec(struct cmd *self, struct cmd_ctx *ctx)
 	}
 
 	fclose(f);
-	umask(mask);
 
 	return (0);
 }