Merge branch 'jk/war-on-sprintf'
Many allocations that is manually counted (correctly) that are followed by strcpy/sprintf have been replaced with a less error prone constructs such as xstrfmt. Macintosh-specific breakage was noticed and corrected in this reroll. * jk/war-on-sprintf: (70 commits) name-rev: use strip_suffix to avoid magic numbers use strbuf_complete to conditionally append slash fsck: use for_each_loose_file_in_objdir Makefile: drop D_INO_IN_DIRENT build knob fsck: drop inode-sorting code convert strncpy to memcpy notes: document length of fanout path with a constant color: add color_set helper for copying raw colors prefer memcpy to strcpy help: clean up kfmclient munging receive-pack: simplify keep_arg computation avoid sprintf and strcpy with flex arrays use alloc_ref rather than hand-allocating "struct ref" color: add overflow checks for parsing colors drop strcpy in favor of raw sha1_to_hex use sha1_to_hex_r() instead of strcpy daemon: use cld->env_array when re-spawning stat_tracking_info: convert to argv_array http-push: use an argv_array for setup_revisions fetch-pack: use argv_array for index-pack / unpack-objects ...
This commit is contained in:
@ -122,6 +122,7 @@ static int add_submodule_odb(const char *path)
|
||||
struct strbuf objects_directory = STRBUF_INIT;
|
||||
struct alternate_object_database *alt_odb;
|
||||
int ret = 0;
|
||||
int alloc;
|
||||
|
||||
strbuf_git_path_submodule(&objects_directory, path, "objects/");
|
||||
if (!is_directory(objects_directory.buf)) {
|
||||
@ -135,9 +136,10 @@ static int add_submodule_odb(const char *path)
|
||||
objects_directory.len))
|
||||
goto done;
|
||||
|
||||
alt_odb = xmalloc(objects_directory.len + 42 + sizeof(*alt_odb));
|
||||
alloc = objects_directory.len + 42; /* for "12/345..." sha1 */
|
||||
alt_odb = xmalloc(sizeof(*alt_odb) + alloc);
|
||||
alt_odb->next = alt_odb_list;
|
||||
strcpy(alt_odb->base, objects_directory.buf);
|
||||
xsnprintf(alt_odb->base, alloc, "%s", objects_directory.buf);
|
||||
alt_odb->name = alt_odb->base + objects_directory.len;
|
||||
alt_odb->name[2] = '/';
|
||||
alt_odb->name[40] = '\0';
|
||||
|
Reference in New Issue
Block a user