summary refs log tree commit diff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--bin/cash/libedit/history.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/bin/cash/libedit/history.c b/bin/cash/libedit/history.c
index 41d1014c..cf6b5789 100644
--- a/bin/cash/libedit/history.c
+++ b/bin/cash/libedit/history.c
@@ -44,6 +44,7 @@ __RCSID("$NetBSD: history.c,v 1.57 2016/04/11 18:56:31 christos Exp $");
 /*
  * hist.c: TYPE(History) access functions
  */
+#include <sys/file.h>
 #include <sys/stat.h>
 #include <stdarg.h>
 #include <stdlib.h>
@@ -768,7 +769,7 @@ static int
 history_load(TYPE(History) *h, const char *fname)
 {
 	FILE *fp;
-	char *line;
+	char *line = NULL;
 	size_t llen;
 	ssize_t sz;
 	size_t max_size;
@@ -782,7 +783,9 @@ history_load(TYPE(History) *h, const char *fname)
 	if ((fp = fopen(fname, "r")) == NULL)
 		return i;
 
-	line = NULL;
+	if (flock(fileno(fp), LOCK_SH) == -1)
+		goto done;
+
 	llen = 0;
 	if ((sz = getline(&line, &llen, fp)) == -1)
 		goto done;
@@ -836,6 +839,8 @@ history_save_fp(TYPE(History) *h, FILE *fp)
 	static ct_buffer_t conv;
 #endif
 
+	if (flock(fileno(fp), LOCK_EX) == -1)
+		goto done;
 	if (fchmod(fileno(fp), S_IRUSR|S_IWUSR) == -1)
 		goto done;
 	if (fputs(hist_cookie, fp) == EOF)
@@ -864,6 +869,7 @@ history_save_fp(TYPE(History) *h, FILE *fp)
 oomem:
 	h_free(ptr);
 done:
+	flock(fileno(fp), LOCK_UN);
 	return i;
 }
 
ner.c?id=913a7ee3584b9cdb05b473123b529677f16e4e0b&follow=1'>Import LibreSSL 3.5.0June McEnroe 2021-11-29tls: Revert accidentally(?) reverted upstream 3.4.2June McEnroe 2021-11-29Import LibreSSL 3.4.2June McEnroe 2021-10-14Import LibreSSL 3.4.1June McEnroe 2021-09-17Import LibreSSL 3.4.0June McEnroe 2021-08-24Import LibreSSL 3.3.4June McEnroe 2021-05-25Bump version to 3.3.3p1 3.3.3p1June McEnroe 2021-05-25build: Add scripts to EXTRA_DISTJune McEnroe 2021-05-25import: Add missing scripts/wrap-compiler-for-flag-checkJune McEnroe 2021-05-08Import LibreSSL 3.3.3June McEnroe 2021-04-18build: Remove added x509_verify.3 links 3.3.2June McEnroe 2021-04-18tls: Use EC_KEY_set_ex_dataJune McEnroe 2021-04-18Import LibreSSL 3.3.2June McEnroe 2021-03-05Bump version to 3.3.1p1 3.3.1p1June McEnroe 2021-03-05build: Add OpenSSL includes to libcompatJune McEnroe Some compat sources (getentropy_linux.c for example) require OpenSSL. Reported by Robert Scheck. 2020-12-15Import LibreSSL 3.3.1June McEnroe 2020-11-24Import LibreSSL 3.3.0June McEnroe 2020-10-22Import LibreSSL 3.2.2June McEnroe 2020-09-29Import LibreSSL 3.2.1June McEnroe 2020-09-29import: Add m4/ax_add_fortify_source.m4June McEnroe 2020-08-05build: Add README.7 to EXTRA_DIST 3.2.0June McEnroe 2020-08-03doc: Indicate that only OpenSSL 1.1.1b and newer workJune McEnroe