diff options
| -rw-r--r-- | blame.c | 2 | ||||
| -rw-r--r-- | builtin-apply.c | 2 | ||||
| -rw-r--r-- | builtin-fmt-merge-msg.c | 22 | ||||
| -rw-r--r-- | builtin-grep.c | 2 | ||||
| -rw-r--r-- | builtin-name-rev.c | 2 | ||||
| -rw-r--r-- | builtin-prune.c | 2 | ||||
| -rw-r--r-- | builtin-push.c | 10 | ||||
| -rw-r--r-- | builtin-repo-config.c | 6 | ||||
| -rw-r--r-- | builtin-rev-list.c | 4 | ||||
| -rw-r--r-- | builtin-rm.c | 2 | ||||
| -rw-r--r-- | builtin-show-branch.c | 6 | ||||
| -rw-r--r-- | builtin-symbolic-ref.c | 4 | ||||
| -rw-r--r-- | builtin-tar-tree.c | 2 | ||||
| -rw-r--r-- | builtin-upload-tar.c | 2 | ||||
| -rw-r--r-- | builtin-zip-tree.c | 4 | ||||
| -rw-r--r-- | config.c | 8 | ||||
| -rw-r--r-- | connect.c | 6 | ||||
| -rw-r--r-- | diff.c | 4 | ||||
| -rw-r--r-- | environment.c | 2 | ||||
| -rw-r--r-- | fetch.c | 4 | ||||
| -rw-r--r-- | fsck-objects.c | 2 | ||||
| -rw-r--r-- | git-compat-util.h | 8 | ||||
| -rw-r--r-- | git.c | 2 | ||||
| -rw-r--r-- | http-fetch.c | 2 | ||||
| -rw-r--r-- | http-push.c | 6 | ||||
| -rw-r--r-- | imap-send.c | 12 | ||||
| -rw-r--r-- | merge-file.c | 2 | ||||
| -rw-r--r-- | merge-recursive.c | 14 | ||||
| -rw-r--r-- | merge-tree.c | 4 | ||||
| -rw-r--r-- | path-list.c | 2 | ||||
| -rw-r--r-- | refs.c | 4 | ||||
| -rw-r--r-- | server-info.c | 2 | ||||
| -rw-r--r-- | sha1_file.c | 2 | ||||
| -rw-r--r-- | sha1_name.c | 2 | 
34 files changed, 84 insertions, 76 deletions
@@ -617,7 +617,7 @@ static void simplify_commit(struct rev_info *revs, struct commit *commit)  				if (new_name) {  					struct util_info* putil = get_util(p);  					if (!putil->pathname) -						putil->pathname = strdup(new_name); +						putil->pathname = xstrdup(new_name);  				} else {  					*pp = parent->next;  					continue; diff --git a/builtin-apply.c b/builtin-apply.c index 1a1deaf78c..872c8005a2 100644 --- a/builtin-apply.c +++ b/builtin-apply.c @@ -2449,7 +2449,7 @@ static int apply_patch(int fd, const char *filename, int inaccurate_eof)  static int git_apply_config(const char *var, const char *value)  {  	if (!strcmp(var, "apply.whitespace")) { -		apply_default_whitespace = strdup(value); +		apply_default_whitespace = xstrdup(value);  		return 0;  	}  	return git_default_config(var, value); diff --git a/builtin-fmt-merge-msg.c b/builtin-fmt-merge-msg.c index 432963db90..c407c033e7 100644 --- a/builtin-fmt-merge-msg.c +++ b/builtin-fmt-merge-msg.c @@ -111,29 +111,29 @@ static int handle_line(char *line)  	i = find_in_list(&srcs, src);  	if (i < 0) {  		i = srcs.nr; -		append_to_list(&srcs, strdup(src), +		append_to_list(&srcs, xstrdup(src),  				xcalloc(1, sizeof(struct src_data)));  	}  	src_data = srcs.payload[i];  	if (pulling_head) { -		origin = strdup(src); +		origin = xstrdup(src);  		src_data->head_status |= 1;  	} else if (!strncmp(line, "branch ", 7)) { -		origin = strdup(line + 7); +		origin = xstrdup(line + 7);  		append_to_list(&src_data->branch, origin, NULL);  		src_data->head_status |= 2;  	} else if (!strncmp(line, "tag ", 4)) {  		origin = line; -		append_to_list(&src_data->tag, strdup(origin + 4), NULL); +		append_to_list(&src_data->tag, xstrdup(origin + 4), NULL);  		src_data->head_status |= 2;  	} else if (!strncmp(line, "remote branch ", 14)) { -		origin = strdup(line + 14); +		origin = xstrdup(line + 14);  		append_to_list(&src_data->r_branch, origin, NULL);  		src_data->head_status |= 2;  	} else { -		origin = strdup(src); -		append_to_list(&src_data->generic, strdup(line), NULL); +		origin = xstrdup(src); +		append_to_list(&src_data->generic, xstrdup(line), NULL);  		src_data->head_status |= 2;  	} @@ -145,7 +145,7 @@ static int handle_line(char *line)  			new_origin[len - 2] = 0;  			origin = new_origin;  		} else -			origin = strdup(origin); +			origin = xstrdup(origin);  	} else {  		char *new_origin = xmalloc(strlen(origin) + strlen(src) + 5);  		sprintf(new_origin, "%s of %s", origin, src); @@ -203,7 +203,7 @@ static void shortlog(const char *name, unsigned char *sha1,  		bol = strstr(commit->buffer, "\n\n");  		if (!bol) { -			append_to_list(&subjects, strdup(sha1_to_hex( +			append_to_list(&subjects, xstrdup(sha1_to_hex(  							commit->object.sha1)),  					NULL);  			continue; @@ -218,7 +218,7 @@ static void shortlog(const char *name, unsigned char *sha1,  			memcpy(oneline, bol, len);  			oneline[len] = 0;  		} else -			oneline = strdup(bol); +			oneline = xstrdup(bol);  		append_to_list(&subjects, oneline, NULL);  	} @@ -277,7 +277,7 @@ int cmd_fmt_merge_msg(int argc, const char **argv, const char *prefix)  		usage(fmt_merge_msg_usage);  	/* get current branch */ -	head = strdup(git_path("HEAD")); +	head = xstrdup(git_path("HEAD"));  	current_branch = resolve_ref(head, head_sha1, 1);  	current_branch += strlen(head) - 4;  	free((char *)head); diff --git a/builtin-grep.c b/builtin-grep.c index 8213ce2402..6430f6d79e 100644 --- a/builtin-grep.c +++ b/builtin-grep.c @@ -1048,7 +1048,7 @@ int cmd_grep(int argc, const char **argv, const char *prefix)  				/* ignore empty line like grep does */  				if (!buf[0])  					continue; -				add_pattern(&opt, strdup(buf), argv[1], ++lno, +				add_pattern(&opt, xstrdup(buf), argv[1], ++lno,  					    GREP_PATTERN);  			}  			fclose(patterns); diff --git a/builtin-name-rev.c b/builtin-name-rev.c index d44e782c99..52886b69b0 100644 --- a/builtin-name-rev.c +++ b/builtin-name-rev.c @@ -100,7 +100,7 @@ static int name_ref(const char *path, const unsigned char *sha1)  		else if (!strncmp(path, "refs/", 5))  			path = path + 5; -		name_rev(commit, strdup(path), 0, 0, deref); +		name_rev(commit, xstrdup(path), 0, 0, deref);  	}  	return 0;  } diff --git a/builtin-prune.c b/builtin-prune.c index fc885ce55b..6228c7907b 100644 --- a/builtin-prune.c +++ b/builtin-prune.c @@ -106,7 +106,7 @@ static void process_tree(struct tree *tree,  	obj->flags |= SEEN;  	if (parse_tree(tree) < 0)  		die("bad tree object %s", sha1_to_hex(obj->sha1)); -	name = strdup(name); +	name = xstrdup(name);  	add_object(obj, p, path, name);  	me.up = path;  	me.elem = name; diff --git a/builtin-push.c b/builtin-push.c index ada8338cc1..c43f2566d5 100644 --- a/builtin-push.c +++ b/builtin-push.c @@ -33,7 +33,7 @@ static int expand_one_ref(const char *ref, const unsigned char *sha1)  	ref += 5;  	if (!strncmp(ref, "tags/", 5)) -		add_refspec(strdup(ref)); +		add_refspec(xstrdup(ref));  	return 0;  } @@ -100,12 +100,12 @@ static int get_remotes_uri(const char *repo, const char *uri[MAX_URI])  		if (!is_refspec) {  			if (n < MAX_URI) -				uri[n++] = strdup(s); +				uri[n++] = xstrdup(s);  			else  				error("more than %d URL's specified, ignoring the rest", MAX_URI);  		}  		else if (is_refspec && !has_explicit_refspec) -			add_refspec(strdup(s)); +			add_refspec(xstrdup(s));  	}  	fclose(f);  	if (!n) @@ -125,13 +125,13 @@ static int get_remote_config(const char* key, const char* value)  	    !strncmp(key + 7, config_repo, config_repo_len)) {  		if (!strcmp(key + 7 + config_repo_len, ".url")) {  			if (config_current_uri < MAX_URI) -				config_uri[config_current_uri++] = strdup(value); +				config_uri[config_current_uri++] = xstrdup(value);  			else  				error("more than %d URL's specified, ignoring the rest", MAX_URI);  		}  		else if (config_get_refspecs &&  			 !strcmp(key + 7 + config_repo_len, ".push")) -			add_refspec(strdup(value)); +			add_refspec(xstrdup(value));  	}  	return 0;  } diff --git a/builtin-repo-config.c b/builtin-repo-config.c index a1756c8580..9cf12d32e5 100644 --- a/builtin-repo-config.c +++ b/builtin-repo-config.c @@ -72,12 +72,12 @@ static int get_value(const char* key_, const char* regex_)  		const char *home = getenv("HOME");  		local = getenv("GIT_CONFIG_LOCAL");  		if (!local) -			local = repo_config = strdup(git_path("config")); +			local = repo_config = xstrdup(git_path("config"));  		if (home) -			global = strdup(mkpath("%s/.gitconfig", home)); +			global = xstrdup(mkpath("%s/.gitconfig", home));  	} -	key = strdup(key_); +	key = xstrdup(key_);  	for (tl=key+strlen(key)-1; tl >= key && *tl != '.'; --tl)  		*tl = tolower(*tl);  	for (tl=key; *tl && *tl != '.'; ++tl) diff --git a/builtin-rev-list.c b/builtin-rev-list.c index 402af8e1b5..8437454fbe 100644 --- a/builtin-rev-list.c +++ b/builtin-rev-list.c @@ -109,7 +109,7 @@ static void process_blob(struct blob *blob,  	if (obj->flags & (UNINTERESTING | SEEN))  		return;  	obj->flags |= SEEN; -	name = strdup(name); +	name = xstrdup(name);  	add_object(obj, p, path, name);  } @@ -130,7 +130,7 @@ static void process_tree(struct tree *tree,  	if (parse_tree(tree) < 0)  		die("bad tree object %s", sha1_to_hex(obj->sha1));  	obj->flags |= SEEN; -	name = strdup(name); +	name = xstrdup(name);  	add_object(obj, p, path, name);  	me.up = path;  	me.elem = name; diff --git a/builtin-rm.c b/builtin-rm.c index 593d86744c..33d04bd015 100644 --- a/builtin-rm.c +++ b/builtin-rm.c @@ -32,7 +32,7 @@ static int remove_file(const char *name)  	ret = unlink(name);  	if (!ret && (slash = strrchr(name, '/'))) { -		char *n = strdup(name); +		char *n = xstrdup(name);  		do {  			n[slash - name] = 0;  			name = n; diff --git a/builtin-show-branch.c b/builtin-show-branch.c index d7de18ec0b..578c9fafd0 100644 --- a/builtin-show-branch.c +++ b/builtin-show-branch.c @@ -163,7 +163,7 @@ static void name_commits(struct commit_list *list,  					en += sprintf(en, "^");  				else  					en += sprintf(en, "^%d", nth); -				name_commit(p, strdup(newname), 0); +				name_commit(p, xstrdup(newname), 0);  				i++;  				name_first_parent_chain(p);  			} @@ -364,7 +364,7 @@ static int append_ref(const char *refname, const unsigned char *sha1)  			refname, MAX_REVS);  		return 0;  	} -	ref_name[ref_name_cnt++] = strdup(refname); +	ref_name[ref_name_cnt++] = xstrdup(refname);  	ref_name[ref_name_cnt] = NULL;  	return 0;  } @@ -521,7 +521,7 @@ static int git_show_branch_config(const char *var, const char *value)  			default_alloc = default_alloc * 3 / 2 + 20;  			default_arg = xrealloc(default_arg, sizeof *default_arg * default_alloc);  		} -		default_arg[default_num++] = strdup(value); +		default_arg[default_num++] = xstrdup(value);  		default_arg[default_num] = NULL;  		return 0;  	} diff --git a/builtin-symbolic-ref.c b/builtin-symbolic-ref.c index b4ec6f28ed..1d3a5e229a 100644 --- a/builtin-symbolic-ref.c +++ b/builtin-symbolic-ref.c @@ -7,7 +7,7 @@ static const char git_symbolic_ref_usage[] =  static void check_symref(const char *HEAD)  {  	unsigned char sha1[20]; -	const char *git_HEAD = strdup(git_path("%s", HEAD)); +	const char *git_HEAD = xstrdup(git_path("%s", HEAD));  	const char *git_refs_heads_master = resolve_ref(git_HEAD, sha1, 0);  	if (git_refs_heads_master) {  		/* we want to strip the .git/ part */ @@ -26,7 +26,7 @@ int cmd_symbolic_ref(int argc, const char **argv, const char *prefix)  		check_symref(argv[1]);  		break;  	case 3: -		create_symref(strdup(git_path("%s", argv[1])), argv[2]); +		create_symref(xstrdup(git_path("%s", argv[1])), argv[2]);  		break;  	default:  		usage(git_symbolic_ref_usage); diff --git a/builtin-tar-tree.c b/builtin-tar-tree.c index 61a413590d..fa666f78c5 100644 --- a/builtin-tar-tree.c +++ b/builtin-tar-tree.c @@ -351,7 +351,7 @@ static int remote_tar(int argc, const char **argv)  		usage(tar_tree_usage);  	/* --remote=<repo> */ -	url = strdup(argv[1]+9); +	url = xstrdup(argv[1]+9);  	pid = git_connect(fd, url, exec);  	if (pid < 0)  		return 1; diff --git a/builtin-upload-tar.c b/builtin-upload-tar.c index 7b401bbb77..06a945a4b1 100644 --- a/builtin-upload-tar.c +++ b/builtin-upload-tar.c @@ -53,7 +53,7 @@ int cmd_upload_tar(int argc, const char **argv, const char *prefix)  			return nak("expected (optional) base");  		if (buf[len-1] == '\n')  			buf[--len] = 0; -		base = strdup(buf + 5); +		base = xstrdup(buf + 5);  		len = packet_read_line(0, buf, sizeof(buf));  	}  	if (len) diff --git a/builtin-zip-tree.c b/builtin-zip-tree.c index a5b834d360..1c1f6830c1 100644 --- a/builtin-zip-tree.c +++ b/builtin-zip-tree.c @@ -311,11 +311,11 @@ int cmd_zip_tree(int argc, const char **argv, const char *prefix)  	switch (argc) {  	case 3: -		base = strdup(argv[2]); +		base = xstrdup(argv[2]);  		baselen = strlen(base);  		break;  	case 2: -		base = strdup(""); +		base = xstrdup("");  		baselen = 0;  		break;  	default: @@ -350,11 +350,11 @@ int git_config(config_fn_t fn)  		home = getenv("HOME");  		filename = getenv("GIT_CONFIG_LOCAL");  		if (!filename) -			filename = repo_config = strdup(git_path("config")); +			filename = repo_config = xstrdup(git_path("config"));  	}  	if (home) { -		char *user_config = strdup(mkpath("%s/.gitconfig", home)); +		char *user_config = xstrdup(mkpath("%s/.gitconfig", home));  		if (!access(user_config, R_OK))  			ret = git_config_from_file(fn, user_config);  		free(user_config); @@ -545,8 +545,8 @@ int git_config_set_multivar(const char* key, const char* value,  		if (!config_filename)  			config_filename  = git_path("config");  	} -	config_filename = strdup(config_filename); -	lock_file = strdup(mkpath("%s.lock", config_filename)); +	config_filename = xstrdup(config_filename); +	lock_file = xstrdup(mkpath("%s.lock", config_filename));  	/*  	 * Since "key" actually contains the section name and the real @@ -69,7 +69,7 @@ struct ref **get_remote_heads(int in, struct ref **list,  		if (len != name_len + 41) {  			if (server_capabilities)  				free(server_capabilities); -			server_capabilities = strdup(name + name_len + 1); +			server_capabilities = xstrdup(name + name_len + 1);  		}  		if (!check_ref(name, name_len, flags)) @@ -661,7 +661,7 @@ int git_connect(int fd[2], char *url, const char *prog)  		if (path[1] == '~')  			path++;  		else { -			path = strdup(ptr); +			path = xstrdup(ptr);  			free_path = 1;  		} @@ -672,7 +672,7 @@ int git_connect(int fd[2], char *url, const char *prog)  		/* These underlying connection commands die() if they  		 * cannot connect.  		 */ -		char *target_host = strdup(host); +		char *target_host = xstrdup(host);  		if (git_use_proxy(host))  			git_proxy_connect(fd, host);  		else @@ -216,7 +216,7 @@ static char *quote_one(const char *str)  		return NULL;  	needlen = quote_c_style(str, NULL, NULL, 0);  	if (!needlen) -		return strdup(str); +		return xstrdup(str);  	xp = xmalloc(needlen + 1);  	quote_c_style(str, xp, NULL, 0);  	return xp; @@ -658,7 +658,7 @@ static struct diffstat_file *diffstat_add(struct diffstat_t *diffstat,  		x->is_renamed = 1;  	}  	else -		x->name = strdup(name_a); +		x->name = xstrdup(name_a);  	return x;  } diff --git a/environment.c b/environment.c index 5fae9ac305..84d870ca4e 100644 --- a/environment.c +++ b/environment.c @@ -47,7 +47,7 @@ static void setup_git_env(void)  	}  	git_graft_file = getenv(GRAFT_ENVIRONMENT);  	if (!git_graft_file) -		git_graft_file = strdup(git_path("info/grafts")); +		git_graft_file = xstrdup(git_path("info/grafts"));  }  const char *get_git_dir(void) @@ -234,8 +234,8 @@ int pull_targets_stdin(char ***target, const char ***write_ref)  			*target = xrealloc(*target, targets_alloc * sizeof(**target));  			*write_ref = xrealloc(*write_ref, targets_alloc * sizeof(**write_ref));  		} -		(*target)[targets] = strdup(tg_one); -		(*write_ref)[targets] = rf_one ? strdup(rf_one) : NULL; +		(*target)[targets] = xstrdup(tg_one); +		(*write_ref)[targets] = rf_one ? xstrdup(rf_one) : NULL;  		targets++;  	}  	return targets; diff --git a/fsck-objects.c b/fsck-objects.c index 24286de15d..4d994f3fc8 100644 --- a/fsck-objects.c +++ b/fsck-objects.c @@ -458,7 +458,7 @@ static void fsck_object_dir(const char *path)  static int fsck_head_link(void)  {  	unsigned char sha1[20]; -	const char *git_HEAD = strdup(git_path("HEAD")); +	const char *git_HEAD = xstrdup(git_path("HEAD"));  	const char *git_refs_heads_master = resolve_ref(git_HEAD, sha1, 1);  	int pfxlen = strlen(git_HEAD) - 4; /* strip .../.git/ part */ diff --git a/git-compat-util.h b/git-compat-util.h index 91f2b0d3f0..552b8ec23a 100644 --- a/git-compat-util.h +++ b/git-compat-util.h @@ -84,6 +84,14 @@ extern char *gitstrcasestr(const char *haystack, const char *needle);  extern size_t gitstrlcpy(char *, const char *, size_t);  #endif +static inline char* xstrdup(const char *str) +{ +	char *ret = strdup(str); +	if (!ret) +		die("Out of memory, strdup failed"); +	return ret; +} +  static inline void *xmalloc(size_t size)  {  	void *ret = malloc(size); @@ -97,7 +97,7 @@ static char *alias_string;  static int git_alias_config(const char *var, const char *value)  {  	if (!strncmp(var, "alias.", 6) && !strcmp(var + 6, alias_command)) { -		alias_string = strdup(value); +		alias_string = xstrdup(value);  	}  	return 0;  } diff --git a/http-fetch.c b/http-fetch.c index 6806f3678c..fac17607b4 100644 --- a/http-fetch.c +++ b/http-fetch.c @@ -787,7 +787,7 @@ static int remote_ls(struct alt_base *repo, const char *path, int flags,  	ls.flags = flags;  	ls.repo = repo; -	ls.path = strdup(path); +	ls.path = xstrdup(path);  	ls.dentry_name = NULL;  	ls.dentry_flags = 0;  	ls.userData = userData; diff --git a/http-push.c b/http-push.c index 7814666d8d..670ff007be 100644 --- a/http-push.c +++ b/http-push.c @@ -1539,7 +1539,7 @@ static void remote_ls(const char *path, int flags,  	struct remote_ls_ctx ls;  	ls.flags = flags; -	ls.path = strdup(path); +	ls.path = xstrdup(path);  	ls.dentry_name = NULL;  	ls.dentry_flags = 0;  	ls.userData = userData; @@ -1738,7 +1738,7 @@ static struct object_list **process_tree(struct tree *tree,  		die("bad tree object %s", sha1_to_hex(obj->sha1));  	obj->flags |= SEEN; -	name = strdup(name); +	name = xstrdup(name);  	p = add_one_object(obj, p);  	me.up = path;  	me.elem = name; @@ -2467,7 +2467,7 @@ int main(int argc, char **argv)  		/* Set up revision info for this refspec */  		commit_argc = 3; -		new_sha1_hex = strdup(sha1_to_hex(ref->new_sha1)); +		new_sha1_hex = xstrdup(sha1_to_hex(ref->new_sha1));  		old_sha1_hex = NULL;  		commit_argv[1] = "--objects";  		commit_argv[2] = new_sha1_hex; diff --git a/imap-send.c b/imap-send.c index 65c71c602d..8ed0f0aa6f 100644 --- a/imap-send.c +++ b/imap-send.c @@ -1032,7 +1032,7 @@ imap_open_store( imap_server_conf_t *srvc )  			 * getpass() returns a pointer to a static buffer.  make a copy  			 * for long term storage.  			 */ -			srvc->pass = strdup( arg ); +			srvc->pass = xstrdup( arg );  		}  		if (CAP(NOLOGIN)) {  			fprintf( stderr, "Skipping account %s@%s, server forbids LOGIN\n", srvc->user, srvc->host ); @@ -1288,7 +1288,7 @@ git_imap_config(const char *key, const char *val)  	key += sizeof imap_key - 1;  	if (!strcmp( "folder", key )) { -		imap_folder = strdup( val ); +		imap_folder = xstrdup( val );  	} else if (!strcmp( "host", key )) {  		{  			if (!strncmp( "imap:", val, 5 )) @@ -1298,16 +1298,16 @@ git_imap_config(const char *key, const char *val)  		}  		if (!strncmp( "//", val, 2 ))  			val += 2; -		server.host = strdup( val ); +		server.host = xstrdup( val );  	}  	else if (!strcmp( "user", key )) -		server.user = strdup( val ); +		server.user = xstrdup( val );  	else if (!strcmp( "pass", key )) -		server.pass = strdup( val ); +		server.pass = xstrdup( val );  	else if (!strcmp( "port", key ))  		server.port = git_config_int( key, val );  	else if (!strcmp( "tunnel", key )) -		server.tunnel = strdup( val ); +		server.tunnel = xstrdup( val );  	return 0;  } diff --git a/merge-file.c b/merge-file.c index f32c653825..fc9b148993 100644 --- a/merge-file.c +++ b/merge-file.c @@ -21,7 +21,7 @@ static const char *write_temp_file(mmfile_t *f)  	fd = mkstemp(filename);  	if (fd < 0)  		return NULL; -	filename = strdup(filename); +	filename = xstrdup(filename);  	if (f->size != xwrite(fd, f->ptr, f->size)) {  		rm_temp_file(filename);  		return NULL; diff --git a/merge-recursive.c b/merge-recursive.c index 48b2763de6..611cd95cf5 100644 --- a/merge-recursive.c +++ b/merge-recursive.c @@ -513,8 +513,8 @@ static char *unique_path(const char *path, const char *branch)  static int mkdir_p(const char *path, unsigned long mode)  { -	/* path points to cache entries, so strdup before messing with it */ -	char *buf = strdup(path); +	/* path points to cache entries, so xstrdup before messing with it */ +	char *buf = xstrdup(path);  	int result = safe_create_leading_directories(buf);  	free(buf);  	return result; @@ -668,9 +668,9 @@ static struct merge_file_info merge_file(struct diff_filespec *o,  			git_unpack_file(a->sha1, src1);  			git_unpack_file(b->sha1, src2); -			argv[2] = la = strdup(mkpath("%s/%s", branch1, a->path)); -			argv[6] = lb = strdup(mkpath("%s/%s", branch2, b->path)); -			argv[4] = lo = strdup(mkpath("orig/%s", o->path)); +			argv[2] = la = xstrdup(mkpath("%s/%s", branch1, a->path)); +			argv[6] = lb = xstrdup(mkpath("%s/%s", branch2, b->path)); +			argv[4] = lo = xstrdup(mkpath("orig/%s", o->path));  			argv[7] = src1;  			argv[8] = orig;  			argv[9] = src2, @@ -1314,9 +1314,9 @@ int main(int argc, char *argv[])  	original_index_file = getenv("GIT_INDEX_FILE");  	if (!original_index_file) -		original_index_file = strdup(git_path("index")); +		original_index_file = xstrdup(git_path("index")); -	temporary_index_file = strdup(git_path("mrg-rcrsv-tmp-idx")); +	temporary_index_file = xstrdup(git_path("mrg-rcrsv-tmp-idx"));  	if (argc < 4)  		die("Usage: %s <base>... -- <head> <remote> ...\n", argv[0]); diff --git a/merge-tree.c b/merge-tree.c index c2e9a867ed..60df758c41 100644 --- a/merge-tree.c +++ b/merge-tree.c @@ -177,7 +177,7 @@ static void resolve(const char *base, struct name_entry *branch1, struct name_en  	if (!branch1)  		return; -	path = strdup(mkpath("%s%s", base, result->path)); +	path = xstrdup(mkpath("%s%s", base, result->path));  	orig = create_entry(2, branch1->mode, branch1->sha1, path);  	final = create_entry(0, result->mode, result->sha1, path); @@ -233,7 +233,7 @@ static struct merge_list *link_entry(unsigned stage, const char *base, struct na  	if (entry)  		path = entry->path;  	else -		path = strdup(mkpath("%s%s", base, n->path)); +		path = xstrdup(mkpath("%s%s", base, n->path));  	link = create_entry(stage, n->mode, n->sha1, path);  	link->link = entry;  	return link; diff --git a/path-list.c b/path-list.c index b1ee72d1dc..0c332dc7b5 100644 --- a/path-list.c +++ b/path-list.c @@ -45,7 +45,7 @@ static int add_entry(struct path_list *list, const char *path)  				(list->nr - index)  				* sizeof(struct path_list_item));  	list->items[index].path = list->strdup_paths ? -		strdup(path) : (char *)path; +		xstrdup(path) : (char *)path;  	list->items[index].util = NULL;  	list->nr++; @@ -313,8 +313,8 @@ static struct ref_lock *lock_ref_sha1_basic(const char *path,  	}  	lock->lk = xcalloc(1, sizeof(struct lock_file)); -	lock->ref_file = strdup(path); -	lock->log_file = strdup(git_path("logs/%s", lock->ref_file + plen)); +	lock->ref_file = xstrdup(path); +	lock->log_file = xstrdup(git_path("logs/%s", lock->ref_file + plen));  	lock->force_write = lstat(lock->ref_file, &st) && errno == ENOENT;  	if (safe_create_leading_directories(lock->ref_file)) diff --git a/server-info.c b/server-info.c index 7df628f2b2..2fb8f57103 100644 --- a/server-info.c +++ b/server-info.c @@ -23,7 +23,7 @@ static int add_info_ref(const char *path, const unsigned char *sha1)  static int update_info_refs(int force)  { -	char *path0 = strdup(git_path("info/refs")); +	char *path0 = xstrdup(git_path("info/refs"));  	int len = strlen(path0);  	char *path1 = xmalloc(len + 2); diff --git a/sha1_file.c b/sha1_file.c index 76f66e6a85..4ef98053f8 100644 --- a/sha1_file.c +++ b/sha1_file.c @@ -115,7 +115,7 @@ static void fill_sha1_path(char *pathbuf, const unsigned char *sha1)  /*   * NOTE! This returns a statically allocated buffer, so you have to be - * careful about using it. Do a "strdup()" if you need to save the + * careful about using it. Do a "xstrdup()" if you need to save the   * filename.   *   * Also note that this returns the location for creating.  Reading diff --git a/sha1_name.c b/sha1_name.c index 3f6b77ccfa..1fbc443805 100644 --- a/sha1_name.c +++ b/sha1_name.c @@ -279,7 +279,7 @@ static int get_sha1_basic(const char *str, int len, unsigned char *sha1)  		pathname = resolve_ref(git_path(*p, len, str), this_result, 1);  		if (pathname) {  			if (!refs_found++) -				real_path = strdup(pathname); +				real_path = xstrdup(pathname);  			if (!warn_ambiguous_refs)  				break;  		}  | 
