git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH] Prevent --index-info from ignoring -z.

From
Shawn Pearce <spearce@spearce.org>
Date
Mar 2, 2006, 17:21 UTC
Message-ID
<20060302172133.GA19111@spearce.org>

If git-update-index --index-info -z is used only the first record given to the process will actually be updated as the -z option is ignored until after all index records have been read and processed. This meant that multiple null terminated records were seen as a single record which was lacking a trailing LF, however since the first record ended in a null the C string handling functions ignored the trailing garbage. So --index-info should be required to be the last command line option, much as --stdin is required to be the last command line option. Because --index-info implies --stdin this isn't an issue as the user shouldn't be passing --stdin when also passing --index-info.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
---
 update-index.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

base eab8a06b5f0937ead199cbd35950a213486f34eb last 77565623e6c7a02ead3d080816c761da85421781

diff --git a/update-index.c b/update-index.c
index ce1db38..797245a 100644
--- a/update-index.c
+++ b/update-index.c
@@ -577,9 +577,11 @@ int main(int argc, const char **argv)
 				break;
 			}
 			if (!strcmp(path, "--index-info")) {
+				if (i != argc - 1)
+					die("--index-info must be at the end");
 				allow_add = allow_replace = allow_remove = 1;
 				read_index_info(line_termination);
-				continue;
+				break;
 			}
 			if (!strcmp(path, "--ignore-missing")) {
 				not_new = 1;
-- 
1.2.3.g5f0e
Message 1 of 1 in “Prevent --index-info from ignoring -z.”
  1. Prevent --index-info from ignoring -z.Shawn Pearce, Mar 2, 2006

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.