diff options
Diffstat (limited to 'sha1_name.c')
-rw-r--r-- | sha1_name.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/sha1_name.c b/sha1_name.c index 89918ca158..3acf221f92 100644 --- a/sha1_name.c +++ b/sha1_name.c @@ -87,9 +87,8 @@ static void find_short_object_filename(int len, const char *hex_pfx, struct disa * object databases including our own. */ const char *objdir = get_object_directory(); - int objdir_len = strlen(objdir); - int entlen = objdir_len + 43; - fakeent = xmalloc(sizeof(*fakeent) + entlen); + size_t objdir_len = strlen(objdir); + fakeent = xmalloc(st_add3(sizeof(*fakeent), objdir_len, 43)); memcpy(fakeent->base, objdir, objdir_len); fakeent->name = fakeent->base + objdir_len + 1; fakeent->name[-1] = '/'; @@ -892,12 +891,12 @@ static int get_sha1_oneline(const char *prefix, unsigned char *sha1, prefix++; negative = 1; } else if (prefix[0] != '!') { - die ("Invalid search pattern: %s", prefix); + return -1; } } if (regcomp(®ex, prefix, REG_EXTENDED)) - die("Invalid search pattern: %s", prefix); + return -1; for (l = list; l; l = l->next) { l->item->object.flags |= ONELINE_SEEN; |