Re: [PATCH 1/2] write_entry(): fix misuses of `path` in error messages

2 messages, 2 authors, 2021-02-10 · open the first message on its own page

Re: [PATCH 1/2] write_entry(): fix misuses of `path` in error messages

From: Junio C Hamano <hidden>
Date: 2021-02-09 23:13:56

Matheus Tavares [off-list ref] writes:
The variables `path` and `ce->name`, at write_entry(), usually have the
same contents, but that's not the case when using a checkout prefix or
writing to a tempfile. (In fact, `path` will be either empty or dirty
when writing to a tempfile.) Therefore, these variables cannot be used
interchangeably. In this sense, fix wrong uses of `path` in error
messages where it should really be `ce->name`. (There doesn't seem to be
any misuse in the other way around.)
Sounds reasonable.  Don't we want to protect this fix with tests?
quoted hunk
Signed-off-by: Matheus Tavares <redacted>
---
 entry.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/entry.c b/entry.c
index a0532f1f00..7b9f43716f 100644
--- a/entry.c
+++ b/entry.c
@@ -282,7 +282,7 @@ static int write_entry(struct cache_entry *ce,
 		new_blob = read_blob_entry(ce, &size);
 		if (!new_blob)
 			return error("unable to read sha1 file of %s (%s)",
-				     path, oid_to_hex(&ce->oid));
+				     ce->name, oid_to_hex(&ce->oid));
 
 		/*
 		 * We can't make a real symlink; write out a regular file entry
@@ -309,7 +309,7 @@ static int write_entry(struct cache_entry *ce,
 			new_blob = read_blob_entry(ce, &size);
 			if (!new_blob)
 				return error("unable to read sha1 file of %s (%s)",
-					     path, oid_to_hex(&ce->oid));
+					     ce->name, oid_to_hex(&ce->oid));
 		}
 
 		/*
@@ -354,7 +354,7 @@ static int write_entry(struct cache_entry *ce,
 
 	case S_IFGITLINK:
 		if (to_tempfile)
-			return error("cannot create temporary submodule %s", path);
+			return error("cannot create temporary submodule %s", ce->name);
 		if (mkdir(path, 0777) < 0)
 			return error("cannot create submodule directory %s", path);
 		sub = submodule_from_ce(ce);
@@ -365,7 +365,7 @@ static int write_entry(struct cache_entry *ce,
 		break;
 
 	default:
-		return error("unknown file mode for %s in index", path);
+		return error("unknown file mode for %s in index", ce->name);
 	}
 
 finish:

Re: [PATCH 1/2] write_entry(): fix misuses of `path` in error messages

From: Matheus Tavares Bernardino <hidden>
Date: 2021-02-10 00:12:19

On Tue, Feb 9, 2021 at 6:27 PM Junio C Hamano [off-list ref] wrote:
Matheus Tavares [off-list ref] writes:
quoted
The variables `path` and `ce->name`, at write_entry(), usually have the
same contents, but that's not the case when using a checkout prefix or
writing to a tempfile. (In fact, `path` will be either empty or dirty
when writing to a tempfile.) Therefore, these variables cannot be used
interchangeably. In this sense, fix wrong uses of `path` in error
messages where it should really be `ce->name`. (There doesn't seem to be
any misuse in the other way around.)
Sounds reasonable.  Don't we want to protect this fix with tests?
Yeah, good idea. I will add a couple tests to check the error message
on missing blobs and when trying to write a submodule to a tempfile.
This should cover 3 out of the 4 error() calls changed in this patch.
(The last one would be when ce->mode is unknown. I'm not sure if/how I
can trigger that case.)
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help