commit c6368c2e90c223c41439b12ae7f14fffbd894dfa from: Stefan Sperling date: Fri Oct 11 09:10:54 2019 UTC properly handle read errors in got_packidx_init_hdr (found by jj@ scan-build) commit - 366e0a5f18070d353035fdfa945719809c60f0aa commit + c6368c2e90c223c41439b12ae7f14fffbd894dfa blob - b39b11252e18b180de363de7f831b1a8087e69db blob + b6f49c5941537ece4825344a137f3cbe7ac37e24 --- lib/pack.c +++ lib/pack.c @@ -126,9 +126,10 @@ got_packidx_init_hdr(struct got_packidx *p, int verify goto done; } n = read(p->fd, h->version, sizeof(*h->version)); - if (n < 0) + if (n < 0) { err = got_error_from_errno("read"); - else if (n != sizeof(*h->version)) { + goto done; + } else if (n != sizeof(*h->version)) { err = got_error(GOT_ERR_BAD_PACKIDX); goto done; } @@ -158,9 +159,10 @@ got_packidx_init_hdr(struct got_packidx *p, int verify goto done; } n = read(p->fd, h->fanout_table, len_fanout); - if (n < 0) + if (n < 0) { err = got_error_from_errno("read"); - else if (n != len_fanout) { + goto done; + } else if (n != len_fanout) { err = got_error(GOT_ERR_BAD_PACKIDX); goto done; }