On Fri, Feb 23, 2018 at 05:24:04PM +0900, Misono, Tomohiro wrote: > On 2018/02/16 4:04, Omar Sandoval wrote: > > From: Omar Sandoval <osan...@fb.com> > > > +static enum btrfs_util_error openat_parent_and_name(int dirfd, const char > > *path, > > + char *name, size_t name_len, > > + int *fd) > > +{ > > + char *tmp_path, *slash, *dirname, *basename; > > + size_t len; > > + > > + /* Ignore trailing slashes. */ > > + len = strlen(path); > > + while (len > 1 && path[len - 1] == '/') > > + len--; > > + > > + tmp_path = malloc(len + 1); > > + if (!tmp_path) > > + return BTRFS_UTIL_ERROR_NO_MEMORY; > > + memcpy(tmp_path, path, len); > > + tmp_path[len] = '\0'; > > + > > + slash = memrchr(tmp_path, '/', len); > > + if (slash == tmp_path) { > > + dirname = "/"; > > + basename = tmp_path + 1; > > + } else if (slash) { > > + *slash = '\0'; > > + dirname = tmp_path; > > + basename = slash + 1; > > + } else { > > + dirname = "."; > > + basename = tmp_path; > > + } > > + > > + len = strlen(basename); > > + if (len >= name_len) { > > + errno = ENAMETOOLONG; > > tmp_path should be also freed here.
Another good catch, thanks. -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html