Skip to content

Commit d56d966

Browse files
peffgitster
authored andcommitted
wt_status: fix signedness mismatch in strbuf_read call
We call strbuf_read(), and want to know whether we got any output. To do so, we assign the result to a size_t, and check whether it is non-zero. But strbuf_read returns a signed ssize_t. If it encounters an error, it will return -1, and we'll end up treating this the same as if we had gotten output. Instead, we can just check whether our buffer has anything in it (which is what we care about anyway, and is the same thing since we know the buffer was empty to begin with). Note that the "len" variable actually has two roles in this function. Now that we've eliminated the first, we can push the declaration closer to the point of use for the second one. Signed-off-by: Jeff King <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 9a9592f commit d56d966

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

wt-status.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -729,7 +729,6 @@ static void wt_status_print_submodule_summary(struct wt_status *s, int uncommitt
729729
struct strbuf cmd_stdout = STRBUF_INIT;
730730
struct strbuf summary = STRBUF_INIT;
731731
char *summary_content;
732-
size_t len;
733732

734733
argv_array_pushf(&sm_summary.env_array, "GIT_INDEX_FILE=%s",
735734
s->index_file);
@@ -749,10 +748,10 @@ static void wt_status_print_submodule_summary(struct wt_status *s, int uncommitt
749748

750749
run_command(&sm_summary);
751750

752-
len = strbuf_read(&cmd_stdout, sm_summary.out, 1024);
751+
strbuf_read(&cmd_stdout, sm_summary.out, 1024);
753752

754753
/* prepend header, only if there's an actual output */
755-
if (len) {
754+
if (cmd_stdout.len) {
756755
if (uncommitted)
757756
strbuf_addstr(&summary, _("Submodules changed but not updated:"));
758757
else
@@ -763,6 +762,7 @@ static void wt_status_print_submodule_summary(struct wt_status *s, int uncommitt
763762
strbuf_release(&cmd_stdout);
764763

765764
if (s->display_comment_prefix) {
765+
size_t len;
766766
summary_content = strbuf_detach(&summary, &len);
767767
strbuf_add_commented_lines(&summary, summary_content, len);
768768
free(summary_content);

0 commit comments

Comments
 (0)