set_worktree_head_symref(): fix error message
[gitweb.git] / sha1_name.c
index 89918ca158379a02368b0604b14465fa14855c8e..3acf221f92f7a0857f17c0210044cacc325c8ce0 100644 (file)
@@ -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(&regex, prefix, REG_EXTENDED))
-               die("Invalid search pattern: %s", prefix);
+               return -1;
 
        for (l = list; l; l = l->next) {
                l->item->object.flags |= ONELINE_SEEN;