From: Mathnerd314 Date: Sat, 18 Jun 2016 17:06:31 +0000 (-0600) Subject: refs: Fix a logic error X-Git-Tag: archive/raspbian/2022.1-3+rpi1~1^2~407^2^2~28 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=9a779563bbfcc35fc1a891b74003619fd4556104;p=ostree.git refs: Fix a logic error I encountered the Opening remotes/ dir error with some broken pull code, and this fixes it. Closes: #358 Approved by: cgwalters --- diff --git a/src/libostree/ostree-repo-refs.c b/src/libostree/ostree-repo-refs.c index 1eb50e0c..b18d838e 100644 --- a/src/libostree/ostree-repo-refs.c +++ b/src/libostree/ostree-repo-refs.c @@ -809,8 +809,10 @@ _ostree_repo_write_ref (OstreeRepo *self, goto out; } - if (!glnx_opendirat (refs_remotes_dfd, remote, TRUE, &dfd, error)) + dfd = glnx_opendirat_with_errno (refs_remotes_dfd, remote, TRUE); + if (dfd < 0 && (errno != ENOENT || rev != NULL)) { + glnx_set_error_from_errno (error); g_prefix_error (error, "Opening remotes/ dir %s: ", remote); goto out; } @@ -818,13 +820,16 @@ _ostree_repo_write_ref (OstreeRepo *self, if (rev == NULL) { - if (unlinkat (dfd, ref, 0) != 0) + if (dfd >= 0) { - if (errno != ENOENT) - { - glnx_set_error_from_errno (error); - goto out; - } + if (unlinkat (dfd, ref, 0) != 0) + { + if (errno != ENOENT) + { + glnx_set_error_from_errno (error); + goto out; + } + } } } else