Merge branch 'maint'

* maint:
  use xmemdupz() to allocate copies of strings given by start and length
  use xcalloc() to allocate zero-initialized memory
maint
Junio C Hamano 2014-07-21 12:35:39 -07:00
commit 9ab0882255
10 changed files with 10 additions and 27 deletions

View File

@ -2867,9 +2867,7 @@ static int apply_binary_fragment(struct image *img, struct patch *patch)
case BINARY_LITERAL_DEFLATED: case BINARY_LITERAL_DEFLATED:
clear_image(img); clear_image(img);
img->len = fragment->size; img->len = fragment->size;
img->buf = xmalloc(img->len+1); img->buf = xmemdupz(fragment->patch, img->len);
memcpy(img->buf, fragment->patch, img->len);
img->buf[img->len] = '\0';
return 0; return 0;
} }
return -1; return -1;

View File

@ -2707,11 +2707,8 @@ parse_done:
die("revision walk setup failed"); die("revision walk setup failed");


if (is_null_sha1(sb.final->object.sha1)) { if (is_null_sha1(sb.final->object.sha1)) {
char *buf;
o = sb.final->util; o = sb.final->util;
buf = xmalloc(o->file.size + 1); sb.final_buf = xmemdupz(o->file.ptr, o->file.size);
memcpy(buf, o->file.ptr, o->file.size + 1);
sb.final_buf = buf;
sb.final_buf_size = o->file.size; sb.final_buf_size = o->file.size;
} }
else { else {

View File

@ -621,8 +621,7 @@ static int *list_and_choose(struct menu_opts *opts, struct menu_stuff *stuff)
nr += chosen[i]; nr += chosen[i];
} }


result = xmalloc(sizeof(int) * (nr + 1)); result = xcalloc(nr + 1, sizeof(int));
memset(result, 0, sizeof(int) * (nr + 1));
for (i = 0; i < stuff->nr && j < nr; i++) { for (i = 0; i < stuff->nr && j < nr; i++) {
if (chosen[i]) if (chosen[i])
result[j++] = i; result[j++] = i;

View File

@ -362,8 +362,7 @@ static void set_thread_data(struct thread_local *data)


static struct base_data *alloc_base_data(void) static struct base_data *alloc_base_data(void)
{ {
struct base_data *base = xmalloc(sizeof(struct base_data)); struct base_data *base = xcalloc(1, sizeof(struct base_data));
memset(base, 0, sizeof(*base));
base->ref_last = -1; base->ref_last = -1;
base->ofs_last = -1; base->ofs_last = -1;
return base; return base;

View File

@ -1316,8 +1316,7 @@ static int WSAAPI getaddrinfo_stub(const char *node, const char *service,
else else
ai->ai_canonname = NULL; ai->ai_canonname = NULL;


sin = xmalloc(ai->ai_addrlen); sin = xcalloc(1, ai->ai_addrlen);
memset(sin, 0, ai->ai_addrlen);
sin->sin_family = AF_INET; sin->sin_family = AF_INET;
/* Note: getaddrinfo is supposed to allow service to be a string, /* Note: getaddrinfo is supposed to allow service to be a string,
* which should be looked up using getservbyname. This is * which should be looked up using getservbyname. This is

View File

@ -64,9 +64,7 @@ static void parse_one_symref_info(struct string_list *symref, const char *val, i
if (!len) if (!len)
return; /* just "symref" */ return; /* just "symref" */
/* e.g. "symref=HEAD:refs/heads/master" */ /* e.g. "symref=HEAD:refs/heads/master" */
sym = xmalloc(len + 1); sym = xmemdupz(val, len);
memcpy(sym, val, len);
sym[len] = '\0';
target = strchr(sym, ':'); target = strchr(sym, ':');
if (!target) if (!target)
/* just "symref=something" */ /* just "symref=something" */

View File

@ -610,9 +610,7 @@ int main(int argc, char **argv)


cmd = c; cmd = c;
n = out[0].rm_eo - out[0].rm_so; n = out[0].rm_eo - out[0].rm_so;
cmd_arg = xmalloc(n); cmd_arg = xmemdupz(dir + out[0].rm_so + 1, n - 1);
memcpy(cmd_arg, dir + out[0].rm_so + 1, n-1);
cmd_arg[n-1] = '\0';
dir[out[0].rm_so] = 0; dir[out[0].rm_so] = 0;
break; break;
} }

4
path.c
View File

@ -249,9 +249,7 @@ int validate_headref(const char *path)
static struct passwd *getpw_str(const char *username, size_t len) static struct passwd *getpw_str(const char *username, size_t len)
{ {
struct passwd *pw; struct passwd *pw;
char *username_z = xmalloc(len + 1); char *username_z = xmemdupz(username, len);
memcpy(username_z, username, len);
username_z[len] = '\0';
pw = getpwnam(username_z); pw = getpwnam(username_z);
free(username_z); free(username_z);
return pw; return pw;

View File

@ -389,8 +389,7 @@ void parse_pathspec(struct pathspec *pathspec,
if (!(flags & PATHSPEC_PREFER_CWD)) if (!(flags & PATHSPEC_PREFER_CWD))
die("BUG: PATHSPEC_PREFER_CWD requires arguments"); die("BUG: PATHSPEC_PREFER_CWD requires arguments");


pathspec->items = item = xmalloc(sizeof(*item)); pathspec->items = item = xcalloc(1, sizeof(*item));
memset(item, 0, sizeof(*item));
item->match = prefix; item->match = prefix;
item->original = prefix; item->original = prefix;
item->nowildcard_len = item->len = strlen(prefix); item->nowildcard_len = item->len = strlen(prefix);

View File

@ -278,9 +278,7 @@ static string_list_ty variables_set;
static void static void
note_variable (const char *var_ptr, size_t var_len) note_variable (const char *var_ptr, size_t var_len)
{ {
char *string = xmalloc (var_len + 1); char *string = xmemdupz (var_ptr, var_len);
memcpy (string, var_ptr, var_len);
string[var_len] = '\0';


string_list_append (&variables_set, string); string_list_append (&variables_set, string);
} }