summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2016-08-08 14:48:41 -0700
committerJunio C Hamano <gitster@pobox.com>2016-08-08 14:48:41 -0700
commit68e80da479ff940aea3f34447336e523b448f34c (patch)
tree077a06f3e0602a16a0cf39b1636566809747fe3d
parent09ee6444f22b3745d29dc0d8fa5560651bbe8c19 (diff)
parent50492f7b38f84619cbfb443efc3c0c78fc0304dd (diff)
downloadgit-68e80da479ff940aea3f34447336e523b448f34c.tar.gz
Merge branch 'rs/st-mult'
Micro optimization of st_mult() facility used to check the integer overflow coming from multiplication to compute size of memory allocation. * rs/st-mult: pass constants as first argument to st_mult()
-rw-r--r--diffcore-rename.c2
-rw-r--r--refs.c2
-rw-r--r--shallow.c2
3 files changed, 3 insertions, 3 deletions
diff --git a/diffcore-rename.c b/diffcore-rename.c
index 58ac0a531b..73d003a08a 100644
--- a/diffcore-rename.c
+++ b/diffcore-rename.c
@@ -541,7 +541,7 @@ void diffcore_rename(struct diff_options *options)
rename_dst_nr * rename_src_nr, 50, 1);
}
- mx = xcalloc(st_mult(num_create, NUM_CANDIDATE_PER_DST), sizeof(*mx));
+ mx = xcalloc(st_mult(NUM_CANDIDATE_PER_DST, num_create), sizeof(*mx));
for (dst_cnt = i = 0; i < rename_dst_nr; i++) {
struct diff_filespec *two = rename_dst[i].two;
struct diff_score *m;
diff --git a/refs.c b/refs.c
index 814cad3163..b4e7cac7b2 100644
--- a/refs.c
+++ b/refs.c
@@ -922,7 +922,7 @@ char *shorten_unambiguous_ref(const char *refname, int strict)
/* -2 for strlen("%.*s") - strlen("%s"); +1 for NUL */
total_len += strlen(ref_rev_parse_rules[nr_rules]) - 2 + 1;
- scanf_fmts = xmalloc(st_add(st_mult(nr_rules, sizeof(char *)), total_len));
+ scanf_fmts = xmalloc(st_add(st_mult(sizeof(char *), nr_rules), total_len));
offset = 0;
for (i = 0; i < nr_rules; i++) {
diff --git a/shallow.c b/shallow.c
index 4d554caf8d..54e2db7334 100644
--- a/shallow.c
+++ b/shallow.c
@@ -389,7 +389,7 @@ static void paint_down(struct paint_info *info, const unsigned char *sha1,
unsigned int i, nr;
struct commit_list *head = NULL;
int bitmap_nr = (info->nr_bits + 31) / 32;
- size_t bitmap_size = st_mult(bitmap_nr, sizeof(uint32_t));
+ size_t bitmap_size = st_mult(sizeof(uint32_t), bitmap_nr);
uint32_t *tmp = xmalloc(bitmap_size); /* to be freed before return */
uint32_t *bitmap = paint_alloc(info);
struct commit *c = lookup_commit_reference_gently(sha1, 1);