cleanup: use internal memory allocation wrapper functions everywhere
The "x"-prefixed versions of strdup, malloc, etc. will check whether the allocation was successful and terminate the process otherwise. A few uses of malloc were left alone since they already implemented a graceful path of failure or were in a quasi external library like xdiff. Additionally, the call to malloc in compat/win32/syslog.c was not modified since the syslog() implemented there is a die handler and a call to the x-wrappers within a die handler could result in recursion should memory allocation fail. This will have to be addressed separately. Signed-off-by: Brandon Casey <drafnel@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
							parent
							
								
									97410b27e9
								
							
						
					
					
						commit
						040a655116
					
				
							
								
								
									
										2
									
								
								attr.c
								
								
								
								
							
							
						
						
									
										2
									
								
								attr.c
								
								
								
								
							|  | @ -533,7 +533,7 @@ static void bootstrap_attr_stack(void) | |||
|  | ||||
| 		if (!is_bare_repository() || direction == GIT_ATTR_INDEX) { | ||||
| 			elem = read_attr(GITATTRIBUTES_FILE, 1); | ||||
| 			elem->origin = strdup(""); | ||||
| 			elem->origin = xstrdup(""); | ||||
| 			elem->prev = attr_stack; | ||||
| 			attr_stack = elem; | ||||
| 			debug_push(elem); | ||||
|  |  | |||
|  | @ -29,7 +29,7 @@ static const char **copy_pathspec(const char *prefix, const char **pathspec, | |||
| 			to_copy--; | ||||
| 		if (to_copy != length || base_name) { | ||||
| 			char *it = xmemdupz(result[i], to_copy); | ||||
| 			result[i] = base_name ? strdup(basename(it)) : it; | ||||
| 			result[i] = base_name ? xstrdup(basename(it)) : it; | ||||
| 		} | ||||
| 	} | ||||
| 	return get_pathspec(prefix, result); | ||||
|  |  | |||
|  | @ -1183,7 +1183,7 @@ static int WSAAPI getaddrinfo_stub(const char *node, const char *service, | |||
| 	} | ||||
| 	ai->ai_addrlen = sizeof(struct sockaddr_in); | ||||
| 	if (hints && (hints->ai_flags & AI_CANONNAME)) | ||||
| 		ai->ai_canonname = h ? strdup(h->h_name) : NULL; | ||||
| 		ai->ai_canonname = h ? xstrdup(h->h_name) : NULL; | ||||
| 	else | ||||
| 		ai->ai_canonname = NULL; | ||||
|  | ||||
|  |  | |||
|  | @ -55,7 +55,7 @@ void git_qsort(void *b, size_t n, size_t s, | |||
| 		msort_with_tmp(b, n, s, cmp, buf); | ||||
| 	} else { | ||||
| 		/* It's somewhat large, so malloc it.  */ | ||||
| 		char *tmp = malloc(size); | ||||
| 		char *tmp = xmalloc(size); | ||||
| 		msort_with_tmp(b, n, s, cmp, tmp); | ||||
| 		free(tmp); | ||||
| 	} | ||||
|  |  | |||
							
								
								
									
										2
									
								
								remote.c
								
								
								
								
							
							
						
						
									
										2
									
								
								remote.c
								
								
								
								
							|  | @ -840,7 +840,7 @@ char *apply_refspecs(struct refspec *refspecs, int nr_refspec, | |||
| 						    refspec->dst, &ret)) | ||||
| 				return ret; | ||||
| 		} else if (!strcmp(refspec->src, name)) | ||||
| 			return strdup(refspec->dst); | ||||
| 			return xstrdup(refspec->dst); | ||||
| 	} | ||||
| 	return NULL; | ||||
| } | ||||
|  |  | |||
|  | @ -48,7 +48,7 @@ int main(int argc, char **argv) | |||
| 			unsigned char sha1[20]; | ||||
| 			uint32_t crc; | ||||
| 			uint32_t off; | ||||
| 		} *entries = malloc(nr * sizeof(entries[0])); | ||||
| 		} *entries = xmalloc(nr * sizeof(entries[0])); | ||||
| 		for (i = 0; i < nr; i++) | ||||
| 			if (fread(entries[i].sha1, 20, 1, stdin) != 1) | ||||
| 				die("unable to read sha1 %u/%u", i, nr); | ||||
|  |  | |||
|  | @ -183,7 +183,7 @@ static struct child_process *get_helper(struct transport *transport) | |||
| 			ALLOC_GROW(refspecs, | ||||
| 				   refspec_nr + 1, | ||||
| 				   refspec_alloc); | ||||
| 			refspecs[refspec_nr++] = strdup(capname + strlen("refspec ")); | ||||
| 			refspecs[refspec_nr++] = xstrdup(capname + strlen("refspec ")); | ||||
| 		} else if (!strcmp(capname, "connect")) { | ||||
| 			data->connect = 1; | ||||
| 		} else if (!prefixcmp(capname, "export-marks ")) { | ||||
|  | @ -445,7 +445,7 @@ static int fetch_with_import(struct transport *transport, | |||
| 		if (data->refspecs) | ||||
| 			private = apply_refspecs(data->refspecs, data->refspec_nr, posn->name); | ||||
| 		else | ||||
| 			private = strdup(posn->name); | ||||
| 			private = xstrdup(posn->name); | ||||
| 		read_ref(private, posn->old_sha1); | ||||
| 		free(private); | ||||
| 	} | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Brandon Casey
						Brandon Casey