git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* duplicate htons() in check_file_directory_conflict()
@ 2005-06-06 23:02 Timo Hirvonen
  2005-06-07  1:59 ` Linus Torvalds
  0 siblings, 1 reply; 3+ messages in thread
From: Timo Hirvonen @ 2005-06-06 23:02 UTC (permalink / raw)
  To: git

Hi,

create_ce_flags() macro calls htons() so the htons()s in  
check_file_directory_conflict() should be removed or alternatively htons  
should be removed from the create_ce_flags macro. I noticed the bug when  
compiling cogito with -Wshadow.

read-cache.c:208
        pos = cache_name_pos(pathbuf,
                             htons(create_ce_flags(len, stage)));


read-cache.c:232
        pos = cache_name_pos(path,
                             htons(create_ce_flags(namelen, stage)));

-- 
http://onion.dynserv.net/~timo/



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

* Re: duplicate htons() in check_file_directory_conflict()
  2005-06-06 23:02 duplicate htons() in check_file_directory_conflict() Timo Hirvonen
@ 2005-06-07  1:59 ` Linus Torvalds
  2005-06-07 20:35   ` [PATCH] Use ntohs instead of htons to convert ce_flags to host byte order Timo Hirvonen
  0 siblings, 1 reply; 3+ messages in thread
From: Linus Torvalds @ 2005-06-07  1:59 UTC (permalink / raw)
  To: Timo Hirvonen; +Cc: git



On Mon, 6 Jun 2005, Timo Hirvonen wrote:
>
> create_ce_flags() macro calls htons() so the htons()s in  
> check_file_directory_conflict() should be removed or alternatively htons  
> should be removed from the create_ce_flags macro. I noticed the bug when  
> compiling cogito with -Wshadow.

No, but it probably should be a ntohs()..

cache_name_pos() takes a host-order thing, and create_ce_flags creates a 
network order thing. It so happens that on all sane setups, ntohs == 
htons, so..

		Linus

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

* [PATCH] Use ntohs instead of htons to convert ce_flags to host byte order
  2005-06-07  1:59 ` Linus Torvalds
@ 2005-06-07 20:35   ` Timo Hirvonen
  0 siblings, 0 replies; 3+ messages in thread
From: Timo Hirvonen @ 2005-06-07 20:35 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Junio C Hamano, git

Use ntohs instead of htons to convert ce_flags to host byte order

---
commit f827ec4fa1be102bda5b92edbf380defa03e8ae2
tree 735922d31ccdc6a2dc1f8e3f1388445903542385
parent fd787bb8d89cdacedc16cfef9dc4feb0cf843def
author Timo Hirvonen <tihirvon@ee.oulu.fi> Tue, 07 Jun 2005 23:18:02 +0300
committer Timo Hirvonen <tihirvon@ee.oulu.fi> Tue, 07 Jun 2005 23:18:02 +0300

 read-cache.c |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/read-cache.c b/read-cache.c
--- a/read-cache.c
+++ b/read-cache.c
@@ -132,7 +132,7 @@ int cache_name_pos(const char *name, int
 	while (last > first) {
 		int next = (last + first) >> 1;
 		struct cache_entry *ce = active_cache[next];
-		int cmp = cache_name_compare(name, namelen, ce->name, htons(ce->ce_flags));
+		int cmp = cache_name_compare(name, namelen, ce->name, ntohs(ce->ce_flags));
 		if (!cmp)
 			return next;
 		if (cmp < 0) {
@@ -206,7 +206,7 @@ static int check_file_directory_conflict
 		*ep = 0;    /* first cut it at slash */
 		len = ep - pathbuf;
 		pos = cache_name_pos(pathbuf,
-				     htons(create_ce_flags(len, stage)));
+				     ntohs(create_ce_flags(len, stage)));
 		if (0 <= pos) {
 			/* Our leading path component is registered as a file,
 			 * and we are trying to make it a directory.  This is
@@ -230,7 +230,7 @@ static int check_file_directory_conflict
 	 * a directory there?
 	 */
 	pos = cache_name_pos(path,
-			     htons(create_ce_flags(namelen, stage)));
+			     ntohs(create_ce_flags(namelen, stage)));
 
 	/* (0 <= pos) cannot happen because add_cache_entry()
 	 * should have taken care of that case.
@@ -279,7 +279,7 @@ int add_cache_entry(struct cache_entry *
 	int pos;
 	int ok_to_add = option & ADD_CACHE_OK_TO_ADD;
 	int ok_to_replace = option & ADD_CACHE_OK_TO_REPLACE;
-	pos = cache_name_pos(ce->name, htons(ce->ce_flags));
+	pos = cache_name_pos(ce->name, ntohs(ce->ce_flags));
 
 	/* existing match? Just replace it */
 	if (pos >= 0) {
@@ -307,7 +307,7 @@ int add_cache_entry(struct cache_entry *
 	if (check_file_directory_conflict(ce, ok_to_replace)) {
 		if (!ok_to_replace)
 			return -1;
-		pos = cache_name_pos(ce->name, htons(ce->ce_flags));
+		pos = cache_name_pos(ce->name, ntohs(ce->ce_flags));
 		pos = -pos-1;
 	}
 




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

end of thread, other threads:[~2005-06-07 20:32 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-06-06 23:02 duplicate htons() in check_file_directory_conflict() Timo Hirvonen
2005-06-07  1:59 ` Linus Torvalds
2005-06-07 20:35   ` [PATCH] Use ntohs instead of htons to convert ce_flags to host byte order Timo Hirvonen

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 NNTP newsgroup(s).