git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* Flag empty patches as errors
@ 2005-10-01  6:25 Linus Torvalds
  2005-10-01  7:15 ` Junio C Hamano
  2005-10-01  9:02 ` Packing on kernel.org Martin Coxall
  0 siblings, 2 replies; 4+ messages in thread
From: Linus Torvalds @ 2005-10-01  6:25 UTC (permalink / raw
  To: Junio C Hamano, Git Mailing List


A patch that contains no actual diff, and that doesn't change any 
meta-data is bad. It shouldn't be a patch at all, and git-apply shouldn't 
just accept it.

This caused a corrupted patch to be silently applied as an empty change in 
the kernel, because the corruption ended up making the patch look empty.

An example of such a patch is one that contains the patch header, but 
where the initial fragment header (the "@@ -nr,.." line) is missing, 
causing us to not parse any fragments.

The real "patch" program will also flag such patches as bad, with the 
message

	patch: **** Only garbage was found in the patch input.

and we should do likewise.

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
---
diff --git a/apply.c b/apply.c
--- a/apply.c
+++ b/apply.c
@@ -723,6 +723,16 @@ static int parse_single_patch(char *line
 	return offset;
 }
 
+static inline int metadata_changes(struct patch *patch)
+{
+	return	patch->is_rename > 0 ||
+		patch->is_copy > 0 ||
+		patch->is_new > 0 ||
+		patch->is_delete ||
+		(patch->old_mode && patch->new_mode &&
+		 patch->old_mode != patch->new_mode);
+}
+
 static int parse_chunk(char *buffer, unsigned long size, struct patch *patch)
 {
 	int hdrsize, patchsize;
@@ -733,6 +743,9 @@ static int parse_chunk(char *buffer, uns
 
 	patchsize = parse_single_patch(buffer + offset + hdrsize, size - offset - hdrsize, patch);
 
+	if (!patchsize && !metadata_changes(patch))
+		die("patch with only garbage at line %d", linenr);
+
 	return offset + hdrsize + patchsize;
 }
 

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Flag empty patches as errors
  2005-10-01  6:25 Flag empty patches as errors Linus Torvalds
@ 2005-10-01  7:15 ` Junio C Hamano
  2005-10-01  9:02 ` Packing on kernel.org Martin Coxall
  1 sibling, 0 replies; 4+ messages in thread
From: Junio C Hamano @ 2005-10-01  7:15 UTC (permalink / raw
  To: Linus Torvalds; +Cc: git

Thanks.  Applied.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Packing on kernel.org
  2005-10-01  6:25 Flag empty patches as errors Linus Torvalds
  2005-10-01  7:15 ` Junio C Hamano
@ 2005-10-01  9:02 ` Martin Coxall
  2005-10-01 14:21   ` H. Peter Anvin
  1 sibling, 1 reply; 4+ messages in thread
From: Martin Coxall @ 2005-10-01  9:02 UTC (permalink / raw
  To: Git Mailing List

Was there an cron process or kernel.org that should be repacking the 
public repositories periodically?

The git/cogito/sparse/linux-2.6 repositories all now have several 
thousand unpacked objects a piece, and it takes so long to do an http 
clone it's not even funny.

Martin

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Packing on kernel.org
  2005-10-01  9:02 ` Packing on kernel.org Martin Coxall
@ 2005-10-01 14:21   ` H. Peter Anvin
  0 siblings, 0 replies; 4+ messages in thread
From: H. Peter Anvin @ 2005-10-01 14:21 UTC (permalink / raw
  To: Martin Coxall; +Cc: Git Mailing List, users

Martin Coxall wrote:
> Was there an cron process or kernel.org that should be repacking the 
> public repositories periodically?

No, too many people complained.

> The git/cogito/sparse/linux-2.6 repositories all now have several 
> thousand unpacked objects a piece, and it takes so long to do an http 
> clone it's not even funny.

HARP: Please pack your repositories periodically.  PLEASE.  It matters 
especially now when kernel.org is down one server.

If your username is high on this list, it's imperative that you pack 
your trees:

brodo                 197469
wim                   184343
marcelo                68442
jgarzik                59860
lm                     39680
mpm                    38995
pavel                  37624
lenb                   36406
hch                    34037
davem                  27671
jejb                   23553
willy                  21626
pasky                  17019
sfrench                15912
smurf                  15236
acme                   12504
torvalds                8834
aegl                    7369
ericvh                  6750
roland                  6296
airlied                 6053
chrisw                  5619
axboe                   5221
dwmw2                   4101
gregkh                  3659
dtor                    3537
hpa                     3350
paulus                  2074
perex                   1999
bart                    1955
cvaroqui                1537
kay                     1250
junio                   1119
sam                     1073
kkeil                   1050

	-hpa

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2005-10-01 14:22 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-10-01  6:25 Flag empty patches as errors Linus Torvalds
2005-10-01  7:15 ` Junio C Hamano
2005-10-01  9:02 ` Packing on kernel.org Martin Coxall
2005-10-01 14:21   ` H. Peter Anvin

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).