* 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).