Newly introduced findings

List of Findings

Error: COMPILER_WARNING (CWE-681): [#def1]
tmux-3.7b/format.c: scope_hint: In function ‘format_loop_sessions’
tmux-3.7b/format.c:4642:31: warning[-Wpointer-sign]: pointer targets in passing argument 1 of ‘sort_get_sessions’ differ in signedness
# 4642 |         l = sort_get_sessions(&n, sc);
#      |                               ^~
#      |                               |
#      |                               int *
tmux-3.7b/format.c:35: included_from: Included from here.
tmux-3.7b/tmux.h:2473:45: note: expected ‘u_int *’ {aka ‘unsigned int *’} but argument is of type ‘int *’
# 2473 | struct session          **sort_get_sessions(u_int *, struct sort_criteria *);
#      |                                             ^~~~~~~
# 4640|   	valuelen = 1;
# 4641|   
# 4642|-> 	l = sort_get_sessions(&n, sc);
# 4643|   	for (i = 0; i < n; i++) {
# 4644|   		s = l[i];

Error: COMPILER_WARNING (CWE-681): [#def2]
tmux-3.7b/format.c: scope_hint: In function ‘format_loop_windows’
tmux-3.7b/format.c:4758:46: warning[-Wpointer-sign]: pointer targets in passing argument 2 of ‘sort_get_winlinks_session’ differ in signedness
# 4758 |         l = sort_get_winlinks_session(ft->s, &n, sc);
#      |                                              ^~
#      |                                              |
#      |                                              int *
tmux-3.7b/tmux.h:2480:71: note: expected ‘u_int *’ {aka ‘unsigned int *’} but argument is of type ‘int *’
# 2480 | struct winlink          **sort_get_winlinks_session(struct session *, u_int *,
#      |                                                                       ^~~~~~~
# 4756|   	valuelen = 1;
# 4757|   
# 4758|-> 	l = sort_get_winlinks_session(ft->s, &n, sc);
# 4759|   	for (i = 0; i < n; i++) {
# 4760|   		wl = l[i];

Error: COMPILER_WARNING (CWE-681): [#def3]
tmux-3.7b/format.c: scope_hint: In function ‘format_loop_panes’
tmux-3.7b/format.c:4829:42: warning[-Wpointer-sign]: pointer targets in passing argument 2 of ‘sort_get_panes_window’ differ in signedness
# 4829 |         l = sort_get_panes_window(ft->w, &n, sc);
#      |                                          ^~
#      |                                          |
#      |                                          int *
tmux-3.7b/tmux.h:2477:66: note: expected ‘u_int *’ {aka ‘unsigned int *’} but argument is of type ‘int *’
# 2477 | struct window_pane      **sort_get_panes_window(struct window *, u_int *,
#      |                                                                  ^~~~~~~
# 4827|   	valuelen = 1;
# 4828|   
# 4829|-> 	l = sort_get_panes_window(ft->w, &n, sc);
# 4830|   	for (i = 0; i < n; i++) {
# 4831|   		wp = l[i];

Error: COMPILER_WARNING (CWE-681): [#def4]
tmux-3.7b/format.c: scope_hint: In function ‘format_loop_clients’
tmux-3.7b/format.c:4877:30: warning[-Wpointer-sign]: pointer targets in passing argument 1 of ‘sort_get_clients’ differ in signedness
# 4877 |         l = sort_get_clients(&n, sc);
#      |                              ^~
#      |                              |
#      |                              int *
tmux-3.7b/tmux.h:2472:44: note: expected ‘u_int *’ {aka ‘unsigned int *’} but argument is of type ‘int *’
# 2472 | struct client           **sort_get_clients(u_int *, struct sort_criteria *);
#      |                                            ^~~~~~~
# 4875|   	valuelen = 1;
# 4876|   
# 4877|-> 	l = sort_get_clients(&n, sc);
# 4878|   	for (i = 0; i < n; i++) {
# 4879|   		c = l[i];

Error: COMPILER_WARNING (CWE-681): [#def5]
tmux-3.7b/input.c: scope_hint: In function ‘input_exit_osc’
tmux-3.7b/input.c:2704:47: warning[-Wpointer-sign]: pointer targets in passing argument 2 of ‘screen_set_title’ differ in signedness
# 2704 |                     screen_set_title(sctx->s, p, 1)) {
#      |                                               ^
#      |                                               |
#      |                                               u_char * {aka unsigned char *}
tmux-3.7b/tmux.h:3382:44: note: expected ‘const char *’ but argument is of type ‘u_char *’ {aka ‘unsigned char *’}
# 3382 | int      screen_set_title(struct screen *, const char *, int);
#      |                                            ^~~~~~~~~~~~
# 2702|   		if (wp != NULL &&
# 2703|   		    options_get_number(wp->options, "allow-set-title") &&
# 2704|-> 		    screen_set_title(sctx->s, p, 1)) {
# 2705|   			notify_pane("pane-title-changed", wp);
# 2706|   			server_redraw_window_borders(wp->window);

Error: COMPILER_WARNING (CWE-681): [#def6]
tmux-3.7b/input.c:2714:60: warning[-Wpointer-sign]: pointer targets in passing argument 2 of ‘screen_set_path’ differ in signedness
# 2714 |                 if (wp != NULL && screen_set_path(sctx->s, p, 1)) {
#      |                                                            ^
#      |                                                            |
#      |                                                            u_char * {aka unsigned char *}
tmux-3.7b/tmux.h:3383:43: note: expected ‘const char *’ but argument is of type ‘u_char *’ {aka ‘unsigned char *’}
# 3383 | int      screen_set_path(struct screen *, const char *, int);
#      |                                           ^~~~~~~~~~~~
# 2712|   		break;
# 2713|   	case 7:
# 2714|-> 		if (wp != NULL && screen_set_path(sctx->s, p, 1)) {
# 2715|   			server_redraw_window_borders(wp->window);
# 2716|   			server_status_window(wp->window);

Error: COMPILER_WARNING (CWE-681): [#def7]
tmux-3.7b/input.c:2723:35: warning[-Wpointer-sign]: pointer targets in passing argument 2 of ‘input_osc_9’ differ in signedness
# 2723 |                 input_osc_9(ictx, p);
#      |                                   ^
#      |                                   |
#      |                                   u_char * {aka unsigned char *}
tmux-3.7b/input.c:167:49: note: expected ‘const char *’ but argument is of type ‘u_char *’ {aka ‘unsigned char *’}
#  167 | static void     input_osc_9(struct input_ctx *, const char *);
#      |                                                 ^~~~~~~~~~~~
# 2721|   		break;
# 2722|   	case 9:
# 2723|-> 		input_osc_9(ictx, p);
# 2724|   		break;
# 2725|   	case 10:

Error: COMPILER_WARNING (CWE-681): [#def8]
tmux-3.7b/input.c: scope_hint: In function ‘input_exit_apc’
tmux-3.7b/input.c:2782:43: warning[-Wpointer-sign]: pointer targets in passing argument 2 of ‘screen_set_title’ differ in signedness
# 2782 |             screen_set_title(sctx->s, ictx->input_buf, 1)) {
#      |                                       ~~~~^~~~~~~~~~~
#      |                                           |
#      |                                           u_char * {aka unsigned char *}
tmux-3.7b/tmux.h:3382:44: note: expected ‘const char *’ but argument is of type ‘u_char *’ {aka ‘unsigned char *’}
# 3382 | int      screen_set_title(struct screen *, const char *, int);
#      |                                            ^~~~~~~~~~~~
# 2780|   	if (wp != NULL &&
# 2781|   	    options_get_number(wp->options, "allow-set-title") &&
# 2782|-> 	    screen_set_title(sctx->s, ictx->input_buf, 1)) {
# 2783|   		notify_pane("pane-title-changed", wp);
# 2784|   		server_redraw_window_borders(wp->window);

Error: COMPILER_WARNING (CWE-681): [#def9]
tmux-3.7b/input.c:2828:40: warning[-Wpointer-sign]: pointer targets in passing argument 2 of ‘window_set_name’ differ in signedness
# 2828 |                 window_set_name(w, ictx->input_buf, 1);
#      |                                    ~~~~^~~~~~~~~~~
#      |                                        |
#      |                                        u_char * {aka unsigned char *}
tmux-3.7b/tmux.h:3487:51: note: expected ‘const char *’ but argument is of type ‘u_char *’ {aka ‘unsigned char *’}
# 3487 | void             window_set_name(struct window *, const char *, int);
#      |                                                   ^~~~~~~~~~~~
# 2826|   	} else {
# 2827|   		options_set_number(w->options, "automatic-rename", 0);
# 2828|-> 		window_set_name(w, ictx->input_buf, 1);
# 2829|   	}
# 2830|   	server_redraw_window_borders(w);

Error: COMPILER_WARNING (CWE-681): [#def10]
tmux-3.7b/input.c: scope_hint: In function ‘input_osc_52’
tmux-3.7b/input.c:3287:56: warning[-Wpointer-sign]: pointer targets in passing argument 3 of ‘tty_set_selection’ differ in signedness
# 3287 |                 tty_set_selection(&ictx->c->tty, clip, out, outlen);
#      |                                                        ^~~
#      |                                                        |
#      |                                                        u_char * {aka unsigned char *}
tmux-3.7b/tmux.h:2728:55: note: expected ‘const char *’ but argument is of type ‘u_char *’ {aka ‘unsigned char *’}
# 2728 | void    tty_set_selection(struct tty *, const char *, const char *, size_t);
#      |                                                       ^~~~~~~~~~~~
# 3285|   			return;
# 3286|   		}
# 3287|-> 		tty_set_selection(&ictx->c->tty, clip, out, outlen);
# 3288|   		paste_add(NULL, out, outlen);
# 3289|   	} else {

Error: COMPILER_WARNING (CWE-681): [#def11]
tmux-3.7b/input.c:3295:33: warning[-Wpointer-sign]: pointer targets in passing argument 2 of ‘paste_add’ differ in signedness
# 3295 |                 paste_add(NULL, out, outlen);
#      |                                 ^~~
#      |                                 |
#      |                                 u_char * {aka unsigned char *}
tmux-3.7b/tmux.h:2459:42: note: expected ‘char *’ but argument is of type ‘u_char *’ {aka ‘unsigned char *’}
# 2459 | void             paste_add(const char *, char *, size_t);
#      |                                          ^~~~~~
# 3293|   		screen_write_stop(&ctx);
# 3294|   		notify_pane("pane-set-clipboard", wp);
# 3295|-> 		paste_add(NULL, out, outlen);
# 3296|   	}
# 3297|   }

Error: GCC_ANALYZER_WARNING (CWE-476): [#def12]
tmux-3.7b/layout-custom.c:391:17: warning[-Wanalyzer-null-dereference]: dereference of NULL ‘0’
tmux-3.7b/layout-custom.c:381:9: release_memory: ‘*lc’ is NULL
tmux-3.7b/layout-custom.c:391:17: danger: dereference of NULL ‘layout_construct_cell(lcparent,  layout)’
#  389|   		return (0);
#  390|   	case '{':
#  391|-> 		(*lc)->type = LAYOUT_LEFTRIGHT;
#  392|   		break;
#  393|   	case '[':

Error: GCC_ANALYZER_WARNING (CWE-476): [#def13]
tmux-3.7b/layout-custom.c:394:17: warning[-Wanalyzer-null-dereference]: dereference of NULL ‘0’
tmux-3.7b/layout-custom.c:381:9: release_memory: ‘*lc’ is NULL
tmux-3.7b/layout-custom.c:394:17: danger: dereference of NULL ‘layout_construct_cell(lcparent,  layout)’
#  392|   		break;
#  393|   	case '[':
#  394|-> 		(*lc)->type = LAYOUT_TOPBOTTOM;
#  395|   		break;
#  396|   	default:

Error: COMPILER_WARNING (CWE-457): [#def14]
tmux-3.7b/layout.c: scope_hint: In function ‘layout_get_tiled_cell’
tmux-3.7b/layout.c:1345:39: warning[-Wmaybe-uninitialized]: ‘curval’ may be used uninitialized
# 1345 |                         size = curval * size / 100;
#      |                                ~~~~~~~^~~~~~
tmux-3.7b/layout.c:1312:34: note: ‘curval’ was declared here
# 1312 |         u_int                    curval;
#      |                                  ^~~~~~
# 1343|   		    cause);
# 1344|   		if (*cause == NULL)
# 1345|-> 			size = curval * size / 100;
# 1346|   	}
# 1347|   	if (*cause != NULL) {

Error: COMPILER_WARNING (CWE-681): [#def15]
tmux-3.7b/popup.c: scope_hint: In function ‘popup_write’
tmux-3.7b/popup.c:889:69: warning[-Wpointer-sign]: pointer targets in passing argument 5 of ‘input_parse_screen’ differ in signedness
#  889 |         input_parse_screen(pd->ictx, &pd->s, popup_init_ctx_cb, pd, data, size);
#      |                                                                     ^~~~
#      |                                                                     |
#      |                                                                     const char *
tmux-3.7b/popup.c:27: included_from: Included from here.
tmux-3.7b/tmux.h:3170:48: note: expected ‘const u_char *’ {aka ‘const unsigned char *’} but argument is of type ‘const char *’
# 3170 |              screen_write_init_ctx_cb, void *, const u_char *, size_t);
#      |                                                ^~~~~~~~~~~~~~
#  887|   	c->overlay_check = NULL;
#  888|   	c->overlay_data = NULL;
#  889|-> 	input_parse_screen(pd->ictx, &pd->s, popup_init_ctx_cb, pd, data, size);
#  890|   	c->overlay_check = popup_check_cb;
#  891|   	c->overlay_data = pd;

Error: COMPILER_WARNING (CWE-681): [#def16]
tmux-3.7b/screen-redraw.c: scope_hint: In function ‘screen_redraw_set_context’
tmux-3.7b/screen-redraw.c:794:36: warning[-Wpointer-sign]: pointer targets in passing argument 2 of ‘tty_window_offset’ differ in signedness
#  794 |         tty_window_offset(&c->tty, &ctx->ox, &ctx->oy, &ctx->sx, &ctx->sy);
#      |                                    ^~~~~~~~
#      |                                    |
#      |                                    int *
tmux-3.7b/screen-redraw.c:24: included_from: Included from here.
tmux-3.7b/tmux.h:2668:41: note: expected ‘u_int *’ {aka ‘unsigned int *’} but argument is of type ‘int *’
# 2668 | int     tty_window_offset(struct tty *, u_int *, u_int *, u_int *, u_int *);
#      |                                         ^~~~~~~
#  792|   	ctx->pane_lines = options_get_number(wo, "pane-border-lines");
#  793|   
#  794|-> 	tty_window_offset(&c->tty, &ctx->ox, &ctx->oy, &ctx->sx, &ctx->sy);
#  795|   
#  796|   	log_debug("%s: %s @%u ox=%u oy=%u sx=%u sy=%u %u/%d", __func__, c->name,

Error: COMPILER_WARNING (CWE-681): [#def17]
tmux-3.7b/screen-redraw.c:794:46: warning[-Wpointer-sign]: pointer targets in passing argument 3 of ‘tty_window_offset’ differ in signedness
#  794 |         tty_window_offset(&c->tty, &ctx->ox, &ctx->oy, &ctx->sx, &ctx->sy);
#      |                                              ^~~~~~~~
#      |                                              |
#      |                                              int *
tmux-3.7b/tmux.h:2668:50: note: expected ‘u_int *’ {aka ‘unsigned int *’} but argument is of type ‘int *’
# 2668 | int     tty_window_offset(struct tty *, u_int *, u_int *, u_int *, u_int *);
#      |                                                  ^~~~~~~
#  792|   	ctx->pane_lines = options_get_number(wo, "pane-border-lines");
#  793|   
#  794|-> 	tty_window_offset(&c->tty, &ctx->ox, &ctx->oy, &ctx->sx, &ctx->sy);
#  795|   
#  796|   	log_debug("%s: %s @%u ox=%u oy=%u sx=%u sy=%u %u/%d", __func__, c->name,

Error: CPPCHECK_WARNING (CWE-562): [#def18]
tmux-3.7b/screen-write.c:1189: error[autoVariables]: Address of local auto-variable assigned to a function parameter.
# 1187|   		}
# 1188|   		if (~gc.flags & GRID_FLAG_SELECTED)
# 1189|-> 			ttyctx->cell = &gc;
# 1190|   		else {
# 1191|   			screen_select_cell(s, &ngc, &gc);

Error: CPPCHECK_WARNING (CWE-562): [#def19]
tmux-3.7b/screen-write.c:1192: error[autoVariables]: Address of local auto-variable assigned to a function parameter.
# 1190|   		else {
# 1191|   			screen_select_cell(s, &ngc, &gc);
# 1192|-> 			ttyctx->cell = &ngc;
# 1193|   		}
# 1194|   		tty_write(tty_cmd_cell, ttyctx);

Error: COMPILER_WARNING (CWE-681): [#def20]
tmux-3.7b/screen-write.c: scope_hint: In function ‘screen_write_setselection’
tmux-3.7b/screen-write.c:2869:25: warning[-Wpointer-sign]: pointer targets in assignment from ‘u_char *’ {aka ‘unsigned char *’} to ‘const char *’ differ in signedness
# 2869 |         ttyctx.sel.data = str;
#      |                         ^
# 2867|   	screen_write_initctx(ctx, &ttyctx, 0, 0);
# 2868|   	ttyctx.sel.clip = clip;
# 2869|-> 	ttyctx.sel.data = str;
# 2870|   	ttyctx.sel.size = len;
# 2871|   

Error: COMPILER_WARNING (CWE-681): [#def21]
tmux-3.7b/screen-write.c: scope_hint: In function ‘screen_write_rawstring’
tmux-3.7b/screen-write.c:2885:26: warning[-Wpointer-sign]: pointer targets in assignment from ‘u_char *’ {aka ‘unsigned char *’} to ‘const char *’ differ in signedness
# 2885 |         ttyctx.data.data = str;
#      |                          ^
# 2883|   	if (allow_invisible_panes)
# 2884|   		ttyctx.flags |= TTY_CTX_INVISIBLE_PANES;
# 2885|-> 	ttyctx.data.data = str;
# 2886|   	ttyctx.data.size = len;
# 2887|   

Error: COMPILER_WARNING (CWE-681): [#def22]
tmux-3.7b/screen.c: scope_hint: In function ‘screen_print’
tmux-3.7b/screen.c:875:45: warning[-Wpointer-sign]: pointer targets in assignment from ‘u_char *’ {aka ‘unsigned char *’} to ‘const char *’ differ in signedness
#  875 |                                         acs = &gce->data.data;
#      |                                             ^
#  873|   					n = strlen(acs);
#  874|   				else {
#  875|-> 					acs = &gce->data.data;
#  876|   					n = 1;
#  877|   				}

Error: COMPILER_WARNING (CWE-457): [#def23]
tmux-3.7b/server-client.c:1000:32: warning[-Wmaybe-uninitialized]: ‘wp’ may be used uninitialized
# 1000 |                 if (wp != NULL &&
#      |                     ~~~~~~~~~~~^~
# 1001 |                     wp != w->active &&
#      |                     ~~~~~~~~~~~~~~~
tmux-3.7b/server-client.c: scope_hint: In function ‘server_client_key_callback’
tmux-3.7b/server-client.c:723:42: note: ‘wp’ was declared here
#  723 |         struct window_pane              *wp, *fwp, *lwp = NULL;
#      |                                          ^~
#  998|   	if (type == KEYC_TYPE_MOUSEMOVE && loc == KEYC_MOUSE_LOCATION_PANE) {
#  999|   		key = KEYC_MOUSEMOVE_PANE;
# 1000|-> 		if (wp != NULL &&
# 1001|   		    wp != w->active &&
# 1002|   		    options_get_number(s->options, "focus-follows-mouse")) {

Error: COMPILER_WARNING (CWE-457): [#def24]
tmux-3.7b/server-client.c:1023:36: warning[-Wmaybe-uninitialized]: ‘px’ may be used uninitialized
# 1023 |                         lwp = wp = window_get_active_at(w, px, py);
#      |                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
tmux-3.7b/server-client.c: scope_hint: In function ‘server_client_key_callback’
tmux-3.7b/server-client.c:724:56: note: ‘px’ was declared here
#  724 |         u_int                            x, y, sx, sy, px, py, n, sl_mpos = 0;
#      |                                                        ^~
# 1021|   		/* Only change pane if not already dragging a pane border. */
# 1022|   		if (lwp == NULL) {
# 1023|-> 			lwp = wp = window_get_active_at(w, px, py);
# 1024|   			if (wp != NULL)
# 1025|   				c->tty.mouse_last_pane = wp->id;

Error: COMPILER_WARNING (CWE-457): [#def25]
tmux-3.7b/server-client.c:1023:36: warning[-Wmaybe-uninitialized]: ‘py’ may be used uninitialized
# 1023 |                         lwp = wp = window_get_active_at(w, px, py);
#      |                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
tmux-3.7b/server-client.c: scope_hint: In function ‘server_client_key_callback’
tmux-3.7b/server-client.c:724:60: note: ‘py’ was declared here
#  724 |         u_int                            x, y, sx, sy, px, py, n, sl_mpos = 0;
#      |                                                            ^~
# 1021|   		/* Only change pane if not already dragging a pane border. */
# 1022|   		if (lwp == NULL) {
# 1023|-> 			lwp = wp = window_get_active_at(w, px, py);
# 1024|   			if (wp != NULL)
# 1025|   				c->tty.mouse_last_pane = wp->id;

Error: GCC_ANALYZER_WARNING (CWE-476): [#def26]
tmux-3.7b/server-client.c:1812:37: warning[-Wanalyzer-null-dereference]: dereference of NULL ‘s’
tmux-3.7b/server-client.c:1759:1: enter_function: entry to ‘server_client_reset_state’
tmux-3.7b/server-client.c:1763:39: call_function: calling ‘server_client_get_pane’ from ‘server_client_reset_state’
tmux-3.7b/server-client.c:1763:39: return_function: returning to ‘server_client_reset_state’ from ‘server_client_get_pane’
tmux-3.7b/server-client.c:1770:12: branch_false: following ‘false’ branch...
tmux-3.7b/server-client.c:1774:18: branch_false: ...to here
tmux-3.7b/server-client.c:1797:12: branch_false: following ‘false’ branch...
tmux-3.7b/server-client.c:1809:19: branch_false: ...to here
tmux-3.7b/server-client.c:1809:19: branch_true: following ‘true’ branch...
tmux-3.7b/server-client.c:1812:37: danger: dereference of NULL ‘s’
# 1810|   		cursor = 0;
# 1811|   		tty_window_offset(tty, &ox, &oy, &sx, &sy);
# 1812|-> 		if (wp->xoff + (int)s->cx >= (int)ox &&
# 1813|   		    wp->xoff + (int)s->cx <= (int)ox + (int)sx &&
# 1814|   		    wp->yoff + (int)s->cy >= (int)oy &&

Error: COMPILER_WARNING (CWE-252): [#def27]
tmux-3.7b/spawn.c: scope_hint: In function ‘spawn_pane’
tmux-3.7b/spawn.c:413:25: warning[-Wunused-result]: ignoring return value of ‘chdir’ declared with attribute ‘warn_unused_result’
#  413 |                         chdir("/");
#      |                         ^~~~~~~~~~
#  411|   		    chdir(path) != 0 &&
#  412|   		    (home == NULL || chdir(home) != 0))
#  413|-> 			chdir("/");
#  414|   		goto complete;
#  415|   	}

Error: COMPILER_WARNING (CWE-681): [#def28]
tmux-3.7b/tty-keys.c: scope_hint: In function ‘tty_keys_clipboard’
tmux-3.7b/tty-keys.c:1413:38: warning[-Wpointer-sign]: pointer targets in passing argument 2 of ‘__b64_pton’ differ in signedness
# 1413 |         if ((outlen = b64_pton(copy, out, needed)) == -1) {
#      |                                      ^~~
#      |                                      |
#      |                                      char *
tmux-3.7b/tty-keys.c:26: included_from: Included from here.
/usr/include/resolv.h:247:41: note: expected ‘unsigned char *’ but argument is of type ‘char *’
#  247 | int             b64_pton (char const *, unsigned char *, size_t) __THROW;
#      |                                         ^~~~~~~~~~~~~~~
# 1411|   	}
# 1412|   	out = xmalloc(needed);
# 1413|-> 	if ((outlen = b64_pton(copy, out, needed)) == -1) {
# 1414|   		free(out);
# 1415|   		free(copy);

Error: GCC_ANALYZER_WARNING (CWE-476): [#def29]
tmux-3.7b/window-tree.c:851:9: warning[-Wanalyzer-null-dereference]: dereference of NULL ‘0’
tmux-3.7b/window-tree.c:820:1: enter_function: entry to ‘window_tree_swap’
tmux-3.7b/window-tree.c:835:9: call_function: calling ‘window_tree_pull_item’ from ‘window_tree_swap’
tmux-3.7b/window-tree.c:835:9: return_function: returning to ‘window_tree_swap’ from ‘window_tree_pull_item’
tmux-3.7b/window-tree.c:836:9: call_function: calling ‘window_tree_pull_item’ from ‘window_tree_swap’
tmux-3.7b/window-tree.c:836:9: return_function: returning to ‘window_tree_swap’ from ‘window_tree_pull_item’
tmux-3.7b/window-tree.c:839:12: branch_false: following ‘false’ branch...
tmux-3.7b/window-tree.c:846:13: branch_false: ...to here
tmux-3.7b/window-tree.c:846:13: release_memory: ‘cur_winlink’ is NULL
tmux-3.7b/window-tree.c:846:12: branch_false: following ‘false’ branch...
tmux-3.7b/window-tree.c:849:9: branch_false: ...to here
tmux-3.7b/window-tree.c:851:9: danger: dereference of NULL ‘cur_winlink’
#  849|   	other_window = other_winlink->window;
#  850|   	TAILQ_REMOVE(&other_window->winlinks, other_winlink, wentry);
#  851|-> 	cur_window = cur_winlink->window;
#  852|   	TAILQ_REMOVE(&cur_window->winlinks, cur_winlink, wentry);
#  853|   

Error: GCC_ANALYZER_WARNING (CWE-476): [#def30]
tmux-3.7b/window-tree.c:851:9: warning[-Wanalyzer-null-dereference]: dereference of NULL ‘cur_winlink’
tmux-3.7b/window-tree.c:820:1: enter_function: entry to ‘window_tree_swap’
tmux-3.7b/window-tree.c:835:9: call_function: calling ‘window_tree_pull_item’ from ‘window_tree_swap’
tmux-3.7b/window-tree.c:835:9: return_function: returning to ‘window_tree_swap’ from ‘window_tree_pull_item’
tmux-3.7b/window-tree.c:836:9: call_function: calling ‘window_tree_pull_item’ from ‘window_tree_swap’
tmux-3.7b/window-tree.c:836:9: return_function: returning to ‘window_tree_swap’ from ‘window_tree_pull_item’
tmux-3.7b/window-tree.c:839:12: branch_false: following ‘false’ branch...
tmux-3.7b/window-tree.c:846:13: branch_false: ...to here
tmux-3.7b/window-tree.c:846:13: release_memory: ‘cur_winlink’ is NULL
tmux-3.7b/window-tree.c:846:12: branch_false: following ‘false’ branch...
tmux-3.7b/window-tree.c:849:9: branch_false: ...to here
tmux-3.7b/window-tree.c:851:9: danger: dereference of NULL ‘cur_winlink’
#  849|   	other_window = other_winlink->window;
#  850|   	TAILQ_REMOVE(&other_window->winlinks, other_winlink, wentry);
#  851|-> 	cur_window = cur_winlink->window;
#  852|   	TAILQ_REMOVE(&cur_window->winlinks, cur_winlink, wentry);
#  853|   

Error: GCC_ANALYZER_WARNING (CWE-835): [#def31]
tmux-3.7b/window.c:956:17: warning[-Wanalyzer-infinite-loop]: infinite loop
#  954|   	struct window_pane	*wp;
#  955|   
#  956|-> 	while (!TAILQ_EMPTY(&w->last_panes)) {
#  957|   		wp = TAILQ_FIRST(&w->last_panes);
#  958|   		window_pane_stack_remove(&w->last_panes, wp);

Error: GCC_ANALYZER_WARNING (CWE-457): [#def32]
tmux-3.7b/window.c:2105:47: warning[-Wanalyzer-use-of-uninitialized-value]: use of uninitialized value ‘line’
tmux-3.7b/window.c:2094:12: branch_false: following ‘false’ branch (when ‘wp’ is non-NULL)...
tmux-3.7b/window.c:2096:9: branch_false: ...to here
tmux-3.7b/window.c:2101:12: branch_false: following ‘false’ branch (when ‘pane_status != 1’)...
tmux-3.7b/window.c:2103:17: branch_false: ...to here
tmux-3.7b/window.c:2103:17: branch_false: following ‘false’ branch (when ‘pane_status != 2’)...
tmux-3.7b/window.c:2105:13: branch_false: ...to here
tmux-3.7b/window.c:2105:47: danger: use of uninitialized value ‘line’ here
# 2103|   	else if (pane_status == PANE_STATUS_BOTTOM)
# 2104|   		line = wp->yoff + wp->sy;
# 2105|-> 	if (pane_status == PANE_STATUS_OFF || line != y)
# 2106|   		return (NULL);
# 2107|   

Error: COMPILER_WARNING (CWE-457): [#def33]
tmux-3.7b/window.c: scope_hint: In function ‘window_pane_border_status_get_range’
tmux-3.7b/window.c:2105:52: warning[-Wmaybe-uninitialized]: ‘line’ may be used uninitialized
# 2105 |         if (pane_status == PANE_STATUS_OFF || line != y)
#      |                                               ~~~~~^~~~
tmux-3.7b/window.c:2091:34: note: ‘line’ was declared here
# 2091 |         u_int                    line;
#      |                                  ^~~~
# 2103|   	else if (pane_status == PANE_STATUS_BOTTOM)
# 2104|   		line = wp->yoff + wp->sy;
# 2105|-> 	if (pane_status == PANE_STATUS_OFF || line != y)
# 2106|   		return (NULL);
# 2107|   

Scan Properties

analyzer-version-clippy1.97.1
analyzer-version-cppcheck2.21.1
analyzer-version-gcc16.1.1
analyzer-version-gcc-analyzer16.1.1
analyzer-version-shellcheck0.11.0
analyzer-version-unicontrol0.0.2
diffbase-analyzer-version-clippy1.97.1
diffbase-analyzer-version-cppcheck2.21.1
diffbase-analyzer-version-gcc16.1.1
diffbase-analyzer-version-gcc-analyzer16.1.1
diffbase-analyzer-version-shellcheck0.11.0
diffbase-analyzer-version-unicontrol0.0.2
diffbase-enabled-pluginsclippy, cppcheck, gcc, shellcheck, unicontrol
diffbase-exit-code0
diffbase-hostip-172-16-1-181.us-west-2.compute.internal
diffbase-known-false-positives/usr/share/csmock/known-false-positives.js
diffbase-known-false-positives-rpmknown-false-positives-0.0.0.20260524.213755.g3c6d0be.main-1.el9.noarch
diffbase-mock-configfedora-rawhide-x86_64
diffbase-project-nametmux-3.6a-1.fc44
diffbase-store-results-to/tmp/tmp8xk5vtej/tmux-3.6a-1.fc44.tar.xz
diffbase-time-created2026-08-03 21:15:33
diffbase-time-finished2026-08-03 21:18:11
diffbase-toolcsmock
diffbase-tool-args'/usr/bin/csmock' '-r' 'fedora-rawhide-x86_64' '-t' 'gcc,clippy,unicontrol,shellcheck,cppcheck' '-o' '/tmp/tmp8xk5vtej/tmux-3.6a-1.fc44.tar.xz' '--gcc-analyze' '--unicontrol-notests' '--unicontrol-bidi-only' '--install' 'pam' '--gcc-analyzer-bin=/usr/bin/gcc' '/tmp/tmp8xk5vtej/tmux-3.6a-1.fc44.src.rpm'
diffbase-tool-versioncsmock-3.8.7.20260803.142340.gb75b18e-1.el9
enabled-pluginsclippy, cppcheck, gcc, shellcheck, unicontrol
exit-code0
hostip-172-16-1-181.us-west-2.compute.internal
known-false-positives/usr/share/csmock/known-false-positives.js
known-false-positives-rpmknown-false-positives-0.0.0.20260524.213755.g3c6d0be.main-1.el9.noarch
mock-configfedora-rawhide-x86_64
project-nametmux-3.7b-3.fc45
store-results-to/tmp/tmpgl0g9zwb/tmux-3.7b-3.fc45.tar.xz
time-created2026-08-03 21:18:37
time-finished2026-08-03 21:24:11
titleNewly introduced findings
toolcsmock
tool-args'/usr/bin/csmock' '-r' 'fedora-rawhide-x86_64' '-t' 'gcc,clippy,unicontrol,shellcheck,cppcheck' '-o' '/tmp/tmpgl0g9zwb/tmux-3.7b-3.fc45.tar.xz' '--gcc-analyze' '--unicontrol-notests' '--unicontrol-bidi-only' '--install' 'pam' '--gcc-analyzer-bin=/usr/bin/gcc' '/tmp/tmpgl0g9zwb/tmux-3.7b-3.fc45.src.rpm'
tool-versioncsmock-3.8.7.20260803.142340.gb75b18e-1.el9