Re: [PATCH 2/2] bisect: avoid signed integer overflow

2013-04-03 Thread John Keeping

Signed-off-by: John Keeping j...@keeping.me.uk
---
Changes since v1:
- Change the function signature instead of casting a value in the
  function.
- This lets us remove an existing cast.

 bisect.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/bisect.c b/bisect.c
index bd1b7b5..374d9e2 100644
--- a/bisect.c
+++ b/bisect.c
@@ -525,9 +525,9 @@ struct commit_list *filter_skipped(struct commit_list *list,
  * is increased by one between each call, but that should not matter
  * for this application.
  */
-static int get_prn(int count) {
+static unsigned get_prn(unsigned count) {
count = count * 1103515245 + 12345;
-   return ((unsigned)(count/65536) % PRN_MODULO);
+   return (count/65536) % PRN_MODULO;
 }
 
 /*
-- 
1.8.2.540.gf023cfe

--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 2/2] bisect: avoid signed integer overflow

2013-04-02 Thread John Keeping
Signed-off-by: John Keeping j...@keeping.me.uk
---
 bisect.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/bisect.c b/bisect.c
index bd1b7b5..0d33c6f 100644
--- a/bisect.c
+++ b/bisect.c
@@ -526,7 +526,7 @@ struct commit_list *filter_skipped(struct commit_list *list,
  * for this application.
  */
 static int get_prn(int count) {
-   count = count * 1103515245 + 12345;
+   count = ((unsigned) count) * 1103515245 + 12345;
return ((unsigned)(count/65536) % PRN_MODULO);
 }
 
-- 
1.8.2.540.gf023cfe

--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 2/2] bisect: avoid signed integer overflow

2013-04-02 Thread Junio C Hamano
John Keeping j...@keeping.me.uk writes:

 Signed-off-by: John Keeping j...@keeping.me.uk
 ---
  bisect.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

 diff --git a/bisect.c b/bisect.c
 index bd1b7b5..0d33c6f 100644
 --- a/bisect.c
 +++ b/bisect.c
 @@ -526,7 +526,7 @@ struct commit_list *filter_skipped(struct commit_list 
 *list,
   * for this application.
   */
  static int get_prn(int count) {
 - count = count * 1103515245 + 12345;
 + count = ((unsigned) count) * 1103515245 + 12345;
   return ((unsigned)(count/65536) % PRN_MODULO);

I wonder

static int get_prn(unsigned);

or even

static unsigned get_prn(unsigned);

to lose the existing cast may be a better alternative.

--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html