summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <gitster@pobox.com>2014-07-21 12:35:39 -0700
committerLibravatar Junio C Hamano <gitster@pobox.com>2014-07-21 12:35:39 -0700
commit9ab08822556c49a7856dadd0e9a42f9ec2aaf850 (patch)
treef52f20367d13f2078fe6199e230322c899b9308d
parentNinth batch for 2.1 (diff)
parentuse xmemdupz() to allocate copies of strings given by start and length (diff)
downloadtgif-9ab08822556c49a7856dadd0e9a42f9ec2aaf850.tar.xz
Merge branch 'maint'
* maint: use xmemdupz() to allocate copies of strings given by start and length use xcalloc() to allocate zero-initialized memory
-rw-r--r--builtin/apply.c4
-rw-r--r--builtin/blame.c5
-rw-r--r--builtin/clean.c3
-rw-r--r--builtin/index-pack.c3
-rw-r--r--compat/mingw.c3
-rw-r--r--connect.c4
-rw-r--r--http-backend.c4
-rw-r--r--path.c4
-rw-r--r--pathspec.c3
-rw-r--r--sh-i18n--envsubst.c4
10 files changed, 10 insertions, 27 deletions
diff --git a/builtin/apply.c b/builtin/apply.c
index 5fd099ed40..9f8f5bac07 100644
--- a/builtin/apply.c
+++ b/builtin/apply.c
@@ -2867,9 +2867,7 @@ static int apply_binary_fragment(struct image *img, struct patch *patch)
case BINARY_LITERAL_DEFLATED:
clear_image(img);
img->len = fragment->size;
- img->buf = xmalloc(img->len+1);
- memcpy(img->buf, fragment->patch, img->len);
- img->buf[img->len] = '\0';
+ img->buf = xmemdupz(fragment->patch, img->len);
return 0;
}
return -1;
diff --git a/builtin/blame.c b/builtin/blame.c
index c59e702021..32ce05f615 100644
--- a/builtin/blame.c
+++ b/builtin/blame.c
@@ -2707,11 +2707,8 @@ parse_done:
die("revision walk setup failed");
if (is_null_sha1(sb.final->object.sha1)) {
- char *buf;
o = sb.final->util;
- buf = xmalloc(o->file.size + 1);
- memcpy(buf, o->file.ptr, o->file.size + 1);
- sb.final_buf = buf;
+ sb.final_buf = xmemdupz(o->file.ptr, o->file.size);
sb.final_buf_size = o->file.size;
}
else {
diff --git a/builtin/clean.c b/builtin/clean.c
index 27701d222c..1032563e5f 100644
--- a/builtin/clean.c
+++ b/builtin/clean.c
@@ -621,8 +621,7 @@ static int *list_and_choose(struct menu_opts *opts, struct menu_stuff *stuff)
nr += chosen[i];
}
- result = xmalloc(sizeof(int) * (nr + 1));
- memset(result, 0, sizeof(int) * (nr + 1));
+ result = xcalloc(nr + 1, sizeof(int));
for (i = 0; i < stuff->nr && j < nr; i++) {
if (chosen[i])
result[j++] = i;
diff --git a/builtin/index-pack.c b/builtin/index-pack.c
index fc40411892..5568a5bc3b 100644
--- a/builtin/index-pack.c
+++ b/builtin/index-pack.c
@@ -362,8 +362,7 @@ static void set_thread_data(struct thread_local *data)
static struct base_data *alloc_base_data(void)
{
- struct base_data *base = xmalloc(sizeof(struct base_data));
- memset(base, 0, sizeof(*base));
+ struct base_data *base = xcalloc(1, sizeof(struct base_data));
base->ref_last = -1;
base->ofs_last = -1;
return base;
diff --git a/compat/mingw.c b/compat/mingw.c
index c19e3d954b..9d435e2cf4 100644
--- a/compat/mingw.c
+++ b/compat/mingw.c
@@ -1316,8 +1316,7 @@ static int WSAAPI getaddrinfo_stub(const char *node, const char *service,
else
ai->ai_canonname = NULL;
- sin = xmalloc(ai->ai_addrlen);
- memset(sin, 0, ai->ai_addrlen);
+ sin = xcalloc(1, ai->ai_addrlen);
sin->sin_family = AF_INET;
/* Note: getaddrinfo is supposed to allow service to be a string,
* which should be looked up using getservbyname. This is
diff --git a/connect.c b/connect.c
index 37ff018f13..5047402a1a 100644
--- a/connect.c
+++ b/connect.c
@@ -64,9 +64,7 @@ static void parse_one_symref_info(struct string_list *symref, const char *val, i
if (!len)
return; /* just "symref" */
/* e.g. "symref=HEAD:refs/heads/master" */
- sym = xmalloc(len + 1);
- memcpy(sym, val, len);
- sym[len] = '\0';
+ sym = xmemdupz(val, len);
target = strchr(sym, ':');
if (!target)
/* just "symref=something" */
diff --git a/http-backend.c b/http-backend.c
index 57290d9bda..80790bbaef 100644
--- a/http-backend.c
+++ b/http-backend.c
@@ -610,9 +610,7 @@ int main(int argc, char **argv)
cmd = c;
n = out[0].rm_eo - out[0].rm_so;
- cmd_arg = xmalloc(n);
- memcpy(cmd_arg, dir + out[0].rm_so + 1, n-1);
- cmd_arg[n-1] = '\0';
+ cmd_arg = xmemdupz(dir + out[0].rm_so + 1, n - 1);
dir[out[0].rm_so] = 0;
break;
}
diff --git a/path.c b/path.c
index bc804a31b3..25c3b8ba7e 100644
--- a/path.c
+++ b/path.c
@@ -249,9 +249,7 @@ int validate_headref(const char *path)
static struct passwd *getpw_str(const char *username, size_t len)
{
struct passwd *pw;
- char *username_z = xmalloc(len + 1);
- memcpy(username_z, username, len);
- username_z[len] = '\0';
+ char *username_z = xmemdupz(username, len);
pw = getpwnam(username_z);
free(username_z);
return pw;
diff --git a/pathspec.c b/pathspec.c
index 89f2c8ffff..9304ee33d7 100644
--- a/pathspec.c
+++ b/pathspec.c
@@ -389,8 +389,7 @@ void parse_pathspec(struct pathspec *pathspec,
if (!(flags & PATHSPEC_PREFER_CWD))
die("BUG: PATHSPEC_PREFER_CWD requires arguments");
- pathspec->items = item = xmalloc(sizeof(*item));
- memset(item, 0, sizeof(*item));
+ pathspec->items = item = xcalloc(1, sizeof(*item));
item->match = prefix;
item->original = prefix;
item->nowildcard_len = item->len = strlen(prefix);
diff --git a/sh-i18n--envsubst.c b/sh-i18n--envsubst.c
index 855d28cf94..6dd03a974a 100644
--- a/sh-i18n--envsubst.c
+++ b/sh-i18n--envsubst.c
@@ -278,9 +278,7 @@ static string_list_ty variables_set;
static void
note_variable (const char *var_ptr, size_t var_len)
{
- char *string = xmalloc (var_len + 1);
- memcpy (string, var_ptr, var_len);
- string[var_len] = '\0';
+ char *string = xmemdupz (var_ptr, var_len);
string_list_append (&variables_set, string);
}