Merge branch 'tg/memfixes'
Fixes for a handful memory access issues identified by valgrind. * tg/memfixes: sub-process: use child_process.args instead of child_process.argv http-push: fix construction of hex value from path path.c: fix uninitialized memory access
This commit is contained in:
commit
98c03a0de8
@ -1018,7 +1018,7 @@ static int get_oid_hex_from_objpath(const char *path, struct object_id *oid)
|
|||||||
memcpy(hex, path, 2);
|
memcpy(hex, path, 2);
|
||||||
path += 2;
|
path += 2;
|
||||||
path++; /* skip '/' */
|
path++; /* skip '/' */
|
||||||
memcpy(hex, path, GIT_SHA1_HEXSZ - 2);
|
memcpy(hex + 2, path, GIT_SHA1_HEXSZ - 2);
|
||||||
|
|
||||||
return get_oid_hex(hex, oid);
|
return get_oid_hex(hex, oid);
|
||||||
}
|
}
|
||||||
|
9
path.c
9
path.c
@ -34,11 +34,10 @@ static struct strbuf *get_pathname(void)
|
|||||||
return sb;
|
return sb;
|
||||||
}
|
}
|
||||||
|
|
||||||
static char *cleanup_path(char *path)
|
static const char *cleanup_path(const char *path)
|
||||||
{
|
{
|
||||||
/* Clean it up */
|
/* Clean it up */
|
||||||
if (!memcmp(path, "./", 2)) {
|
if (skip_prefix(path, "./", &path)) {
|
||||||
path += 2;
|
|
||||||
while (*path == '/')
|
while (*path == '/')
|
||||||
path++;
|
path++;
|
||||||
}
|
}
|
||||||
@ -47,7 +46,7 @@ static char *cleanup_path(char *path)
|
|||||||
|
|
||||||
static void strbuf_cleanup_path(struct strbuf *sb)
|
static void strbuf_cleanup_path(struct strbuf *sb)
|
||||||
{
|
{
|
||||||
char *path = cleanup_path(sb->buf);
|
const char *path = cleanup_path(sb->buf);
|
||||||
if (path > sb->buf)
|
if (path > sb->buf)
|
||||||
strbuf_remove(sb, 0, path - sb->buf);
|
strbuf_remove(sb, 0, path - sb->buf);
|
||||||
}
|
}
|
||||||
@ -64,7 +63,7 @@ char *mksnpath(char *buf, size_t n, const char *fmt, ...)
|
|||||||
strlcpy(buf, bad_path, n);
|
strlcpy(buf, bad_path, n);
|
||||||
return buf;
|
return buf;
|
||||||
}
|
}
|
||||||
return cleanup_path(buf);
|
return (char *)cleanup_path(buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int dir_prefix(const char *buf, const char *dir)
|
static int dir_prefix(const char *buf, const char *dir)
|
||||||
|
@ -77,13 +77,12 @@ int subprocess_start(struct hashmap *hashmap, struct subprocess_entry *entry, co
|
|||||||
{
|
{
|
||||||
int err;
|
int err;
|
||||||
struct child_process *process;
|
struct child_process *process;
|
||||||
const char *argv[] = { cmd, NULL };
|
|
||||||
|
|
||||||
entry->cmd = cmd;
|
entry->cmd = cmd;
|
||||||
process = &entry->process;
|
process = &entry->process;
|
||||||
|
|
||||||
child_process_init(process);
|
child_process_init(process);
|
||||||
process->argv = argv;
|
argv_array_push(&process->args, cmd);
|
||||||
process->use_shell = 1;
|
process->use_shell = 1;
|
||||||
process->in = -1;
|
process->in = -1;
|
||||||
process->out = -1;
|
process->out = -1;
|
||||||
|
Loading…
Reference in New Issue
Block a user