run-command: teach async threads to ignore SIGPIPE
[gitweb.git] / sha1_name.c
index 892db21813bc484628e940274e742d103629b0ed..ab5a163c9bab7f5799011b984715ed1ca9deed10 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] = '/';
@@ -882,12 +881,12 @@ static int get_sha1_oneline(const char *prefix, unsigned char *sha1,
 
        if (prefix[0] == '!') {
                if (prefix[1] != '!')
-                       die ("Invalid search pattern: %s", prefix);
+                       return -1;
                prefix++;
        }
 
        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;