On Thu, Jan 12, 2017 at 3:53 PM, Brandon Williams <bmwill@xxxxxxxxxx> wrote: > -static void prepare_attr_stack(const char *path, int dirlen) > +/* > + * This funciton should only be called from 'get_attr_stack()', which already "function" > + /* system-wide frame */ > + if (git_attr_system()) { > + e = read_attr_from_file(git_etc_gitattributes(), 1); read_attr_from_file may return NULL, so we'd have to treat this similar to below "root directory", i.e. xcalloc for an empty frame? > + > + /* root directory */ > + if (!is_bare_repository() || direction == GIT_ATTR_INDEX) { > + e = read_attr(GITATTRIBUTES_FILE, 1); > + } else { > + e = xcalloc(1, sizeof(struct attr_stack)); > + } > + key = ""; > + push_stack(&core, e, key, strlen(key)); If this is a bare repo, could we just omit this frame instead of pushing an empty xcalloc'd frame? (Same for the stack frames of system wide and home dir) ?