Error: SHELLCHECK_WARNING (CWE-758): [#def1] /etc/profile.d/less.sh:1:1: error[SC2148]: Tips depend on target shell and yours is unknown. Add a shebang or a 'shell' directive. # 1|-> # less initialization script (sh) # 2| # 3| # All less.*sh files should have the same semantics! Error: SHELLCHECK_WARNING (CWE-477): [#def2] /usr/bin/lesspipe.sh:125:19: warning[SC2166]: Prefer [ p ] && [ q ] as [ p -a q ] is not well defined. # 123| if [ -n "$conv" ]; then # 124| env=`echo $LANG | cut -d. -f2` # 125|-> if [ -n "$env" -a "$conv" != "$env" ]; then # 126| iconv -f $conv -t $env "$1" # 127| exit $? Error: GCC_ANALYZER_WARNING (CWE-416): [#def3] less-685/ch.c: scope_hint: In function ‘ch_delbufs’ less-685/ch.c:85:13: warning[-Wanalyzer-use-after-free]: use after ‘free’ of ‘*thisfile.buflist.next’ less-685/ch.c:809:17: note: in expansion of macro ‘BUF_RM’ less-685/ch.c:809:17: note: in expansion of macro ‘BUF_RM’ less-685/ch.c:809:17: note: in expansion of macro ‘BUF_RM’ less-685/ch.c:809:17: note: in expansion of macro ‘BUF_RM’ less-685/ch.c:809:17: note: in expansion of macro ‘BUF_RM’ # 83| # 84| #define BUF_RM(bn) \ # 85|-> (bn)->next->prev = (bn)->prev; \ # 86| (bn)->prev->next = (bn)->next; # 87| Error: CLANG_WARNING: [#def4] less-685/ch.c:226:40: warning[core.NullDereference]: Access to field 'datasize' results in a dereference of an undefined pointer value (loaded from variable 'bp') # 224| lbool read_again; # 225| POSITION len; # 226|-> POSITION pos = ch_position(ch_block, bp->datasize); # 227| lbool read_pipe_at_eof = FALSE; # 228| if ((len = ch_length()) != NULL_POSITION && pos >= len) Error: COMPILER_WARNING (CWE-252): [#def5] less-685/ch.c: scope_hint: In function ‘ch_get’ less-685/ch.c:311:33: warning[-Wunused-result]: ignoring return value of ‘write’ declared with attribute ‘warn_unused_result’ # 311 | write(logfile, &bp->data[bp->datasize], (size_t) n); # | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # 309| { # 310| if (logfile >= 0 && n > 0) # 311|-> write(logfile, &bp->data[bp->datasize], (size_t) n); # 312| } # 313| #endif Error: COMPILER_WARNING (CWE-252): [#def6] less-685/ch.c: scope_hint: In function ‘sync_logfile’ less-685/ch.c:448:33: warning[-Wunused-result]: ignoring return value of ‘write’ declared with attribute ‘warn_unused_result’ # 448 | write(logfile, bp->data, bp->datasize); # | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # 446| if (bp->block == block) # 447| { # 448|-> write(logfile, bp->data, bp->datasize); # 449| wrote = TRUE; # 450| break; Error: CLANG_WARNING: [#def7] less-685/ch.c:809:3: warning[unix.Malloc]: Use of memory after it is freed # 807| { # 808| bn = ch_bufhead; # 809|-> BUF_RM(bn); # 810| free(bufnode_buf(bn)); # 811| } Error: CLANG_WARNING: [#def8] less-685/decode.c:1015:31: warning[unix.MallocSizeof]: Result of 'calloc' is converted to a pointer of type 'unsigned char', which is incompatible with sizeof operand type 'char' # 1013| return (-1); # 1014| } # 1015|-> if ((buf = (unsigned char *) calloc((size_t)len, sizeof(char))) == NULL) # 1016| { # 1017| close(f); Error: COMPILER_WARNING (CWE-457): [#def9] less-685/edit.c:611:9: warning[-Wmaybe-uninitialized]: ‘alt_filename’ may be used uninitialized # 611 | set_altfilename(curr_ifile, alt_filename); # | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ less-685/edit.c:442:15: note: ‘alt_filename’ was declared here # 442 | char *alt_filename; # | ^~~~~~~~~~~~ # 609| curr_ifile = ifile; # 610| soft_eof = NULL_POSITION; # 611|-> set_altfilename(curr_ifile, alt_filename); # 612| set_altpipe(curr_ifile, altpipe); # 613| set_open(curr_ifile); /* File has been opened */ Error: COMPILER_WARNING (CWE-457): [#def10] less-685/edit.c: scope_hint: In function ‘edit_ifile’ less-685/edit.c:615:9: warning[-Wmaybe-uninitialized]: ‘chflags’ may be used uninitialized # 615 | ch_init(f, chflags, nread); # | ^~~~~~~~~~~~~~~~~~~~~~~~~~ less-685/edit.c:439:13: note: ‘chflags’ was declared here # 439 | int chflags; # | ^~~~~~~ # 613| set_open(curr_ifile); /* File has been opened */ # 614| get_pos(curr_ifile, &initial_scrpos); # 615|-> ch_init(f, chflags, nread); # 616| consecutive_nulls = 0; # 617| check_modelines(); Error: COMPILER_WARNING (CWE-457): [#def11] less-685/edit.c:629:21: warning[-Wmaybe-uninitialized]: ‘open_filename’ may be used uninitialized # 629 | if (strcmp(open_filename, "-") != 0) # | ^~~~~~~~~~~~~~~~~~~~~~~~~~ less-685/edit.c:441:24: note: ‘open_filename’ was declared here # 441 | constant char *open_filename; # | ^~~~~~~~~~~~~ # 627| #if HAVE_STAT_INO # 628| /* Remember the i-number and device of the opened file. */ # 629|-> if (strcmp(open_filename, "-") != 0) # 630| { # 631| struct stat statbuf; Error: COMPILER_WARNING (CWE-457): [#def12] less-685/edit.c:665:21: warning[-Wmaybe-uninitialized]: ‘filename’ may be used uninitialized # 665 | if (strcmp(filename, FAKE_HELPFILE) && strcmp(filename, FAKE_EMPTYFILE)) # | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ less-685/edit.c:440:24: note: ‘filename’ was declared here # 440 | constant char *filename; # | ^~~~~~~~ # 663| undo_osc8(); # 664| hshift = 0; # 665|-> if (strcmp(filename, FAKE_HELPFILE) && strcmp(filename, FAKE_EMPTYFILE)) # 666| { # 667| char *qfilename = shell_quote(filename); Error: CLANG_WARNING: [#def13] less-685/edit.c:986:7: warning[unix.StdCLibraryFunctions]: The 1st argument to 'lseek' is -1 but should be >= 0 # 984| */ # 985| logfile = open(filename, OPEN_APPEND); # 986|-> if (less_lseek(logfile, (less_off_t)0, SEEK_END) == BAD_LSEEK) # 987| { # 988| close(logfile); Error: CLANG_WARNING: [#def14] less-685/input.c:152:3: warning[deadcode.DeadStores]: Value stored to 'new_pos' is never read # 150| plinestart(base_pos); # 151| ch_seek(curr_pos); # 152|-> new_pos = curr_pos; # 153| } else # 154| { Error: CLANG_WARNING: [#def15] less-685/input.c:535:8: warning[deadcode.DeadStores]: Value stored to 'edisp_pos' is never read # 533| if (c == '\n') # 534| new_pos++; # 535|-> edisp_pos = new_pos; # 536| break; # 537| } Error: CLANG_WARNING: [#def16] less-685/jump.c:145:7: warning[deadcode.DeadStores]: Although the value stored to 'len' is used in the enclosing expression, the value is never actually read from 'len' # 143| * (the specified percentage of the file's length). # 144| */ # 145|-> if ((len = ch_length()) == NULL_POSITION) # 146| { # 147| ierror("Determining length of file", NULL_PARG); Error: CLANG_WARNING: [#def17] less-685/lesskey_parse.c:323:9: warning[core.CallAndMessage]: 1st function call argument is an uninitialized value # 321| static char * skipsp(char *s) # 322| { # 323|-> while (issp(*s)) # 324| s++; # 325| return (s); Error: CLANG_WARNING: [#def18] less-685/lesskey_parse.c:668:2: warning[unix.Stream]: Opened stream never closed. Potential resource leak # 666| fclose(desc); # 667| } # 668|-> free(lesskey_file); # 669| lesskey_file = NULL; # 670| return (errors); Error: CLANG_WARNING: [#def19] less-685/line.c:1594:5: warning[deadcode.DeadStores]: Value stored to 'prev_ch' is never read # 1592| else # 1593| cw = pwidth(wch, attr, prev_ch, attr); # 1594|-> prev_ch = wch; # 1595| } # 1596| } else Error: CPPCHECK_WARNING (CWE-457): [#def20] less-685/line.c:1932: warning[uninitvar]: Uninitialized variable: pos # 1930| if ((pos = position(sline)) != NULL_POSITION) # 1931| break; # 1932|-> for (; sline < sc_height && pos != NULL_POSITION; sline++) # 1933| { # 1934| pos = forw_line(pos, NULL, NULL); Error: GCC_ANALYZER_WARNING (CWE-476): [#def21] less-685/linenum.c: scope_hint: In function ‘add_lnum’ less-685/linenum.c:197:22: warning[-Wanalyzer-null-dereference]: dereference of NULL ‘0’ less-685/linenum.c: scope_hint: In function ‘add_lnum’ # 195| } # 196| } # 197|-> spare->next->prev = spare->prev; # 198| spare->prev->next = spare->next; # 199| } Error: CLANG_WARNING: [#def22] less-685/linenum.c:197:23: warning[core.NullDereference]: Access to field 'prev' results in a dereference of a null pointer (loaded from variable 'spare') # 195| } # 196| } # 197|-> spare->next->prev = spare->prev; # 198| spare->prev->next = spare->next; # 199| } Error: CLANG_WARNING: [#def23] less-685/lsystem.c:118:3: warning[unix.StdCLibraryFunctions]: The 1st argument to 'dup' is -1 but should be >= 0 # 116| if (open_tty() < 0) # 117| #endif # 118|-> dup(inp); # 119| #endif # 120| Error: GCC_ANALYZER_WARNING: [#def24] less-685/lsystem.c: scope_hint: In function ‘lsystem’ less-685/lsystem.c:118:17: warning[-Wanalyzer-fd-use-without-check]: ‘dup’ on possibly invalid file descriptor ‘inp’ # 116| if (open_tty() < 0) # 117| #endif # 118|-> dup(inp); # 119| #endif # 120| Error: COMPILER_WARNING (CWE-252): [#def25] less-685/lsystem.c: scope_hint: In function ‘lsystem’ less-685/lsystem.c:118:17: warning[-Wunused-result]: ignoring return value of ‘dup’ declared with attribute ‘warn_unused_result’ # 118 | dup(inp); # | ^~~~~~~~ # 116| if (open_tty() < 0) # 117| #endif # 118|-> dup(inp); # 119| #endif # 120| Error: COMPILER_WARNING (CWE-252): [#def26] less-685/lsystem.c:152:9: warning[-Wunused-result]: ignoring return value of ‘system’ declared with attribute ‘warn_unused_result’ # 152 | system(p); # | ^~~~~~~~~ # 150| p = save(cmd); # 151| } # 152|-> system(p); # 153| free(p); # 154| #else Error: GCC_ANALYZER_WARNING (CWE-1341): [#def27] less-685/lsystem.c:176:9: warning[-Wanalyzer-fd-double-close]: double ‘close’ of file descriptor ‘0’ # 174| * Restore standard input, reset signals, raw mode, etc. # 175| */ # 176|-> close(0); # 177| dup(inp); # 178| close(inp); Error: CLANG_WARNING: [#def28] less-685/lsystem.c:177:2: warning[unix.StdCLibraryFunctions]: The 1st argument to 'dup' is -1 but should be >= 0 # 175| */ # 176| close(0); # 177|-> dup(inp); # 178| close(inp); # 179| #endif Error: GCC_ANALYZER_WARNING: [#def29] less-685/lsystem.c:177:9: warning[-Wanalyzer-fd-use-without-check]: ‘dup’ on possibly invalid file descriptor ‘inp’ # 175| */ # 176| close(0); # 177|-> dup(inp); # 178| close(inp); # 179| #endif Error: COMPILER_WARNING (CWE-252): [#def30] less-685/lsystem.c:177:9: warning[-Wunused-result]: ignoring return value of ‘dup’ declared with attribute ‘warn_unused_result’ # 177 | dup(inp); # | ^~~~~~~~ # 175| */ # 176| close(0); # 177|-> dup(inp); # 178| close(inp); # 179| #endif Error: CPPCHECK_WARNING (CWE-909): [#def31] less-685/position.c:127: error[uninitStructMember]: Uninitialized struct member: scrpos.ln # 125| pos_clear(); # 126| if (scrpos.pos != NULL_POSITION) # 127|-> table[scrpos.ln-1] = scrpos.pos; # 128| } # 129| Error: CLANG_WARNING: [#def32] less-685/search.c:2288:50: warning[core.UndefinedBinaryOperatorResult]: The left operand of '>' is a garbage value # 2286| if (result < 0) # 2287| return; # 2288|-> if (nprep_endpos == NULL_POSITION || new_epos > nprep_endpos) # 2289| nprep_endpos = new_epos; # 2290| Error: CLANG_WARNING: [#def33] less-685/search.c:2289:18: warning[core.uninitialized.Assign]: Assigned value is uninitialized # 2287| return; # 2288| if (nprep_endpos == NULL_POSITION || new_epos > nprep_endpos) # 2289|-> nprep_endpos = new_epos; # 2290| # 2291| /* Error: GCC_ANALYZER_WARNING (CWE-131): [#def34] less-685/tags.c: scope_hint: In function ‘findctag’ less-685/tags.c:79:20: warning[-Wanalyzer-allocation-size]: allocated buffer size is not a multiple of the pointee's size less-685/tags.c:357:17: note: in expansion of macro ‘TAG_INS’ less-685/tags.c:357:17: note: in expansion of macro ‘TAG_INS’ # 77| # 78| #define TAG_INS(tp) \ # 79|-> (tp)->next = TAG_END; \ # 80| (tp)->prev = taglist.tl_last; \ # 81| taglist.tl_last->next = (tp); \ Error: GCC_ANALYZER_WARNING (CWE-416): [#def35] less-685/tags.c: scope_hint: In function ‘cleantags’ less-685/tags.c:85:13: warning[-Wanalyzer-use-after-free]: use after ‘free’ of ‘tp’ less-685/tags.c:102:17: note: in expansion of macro ‘TAG_RM’ less-685/tags.c:102:17: note: in expansion of macro ‘TAG_RM’ less-685/tags.c:102:17: note: in expansion of macro ‘TAG_RM’ less-685/tags.c:102:17: note: in expansion of macro ‘TAG_RM’ less-685/tags.c:102:17: note: in expansion of macro ‘TAG_RM’ # 83| # 84| #define TAG_RM(tp) \ # 85|-> (tp)->next->prev = (tp)->prev; \ # 86| (tp)->prev->next = (tp)->next; # 87| Error: CLANG_WARNING: [#def36] less-685/tags.c:102:3: warning[unix.Malloc]: Use of memory after it is freed # 100| while ((tp = taglist.tl_first) != TAG_END) # 101| { # 102|-> TAG_RM(tp); # 103| free(tp->tag_file); # 104| free(tp->tag_pattern); Error: GCC_ANALYZER_WARNING (CWE-415): [#def37] less-685/tags.c:103:17: warning[-Wanalyzer-double-free]: double-‘free’ of ‘*tp.tag_file’ less-685/tags.c:102:17: note: in expansion of macro ‘TAG_RM’ less-685/tags.c:102:17: note: in expansion of macro ‘TAG_RM’ # 101| { # 102| TAG_RM(tp); # 103|-> free(tp->tag_file); # 104| free(tp->tag_pattern); # 105| free(tp); Error: GCC_ANALYZER_WARNING (CWE-415): [#def38] less-685/tags.c:104:17: warning[-Wanalyzer-double-free]: double-‘free’ of ‘*tp.tag_pattern’ less-685/tags.c:102:17: note: in expansion of macro ‘TAG_RM’ less-685/tags.c:102:17: note: in expansion of macro ‘TAG_RM’ # 102| TAG_RM(tp); # 103| free(tp->tag_file); # 104|-> free(tp->tag_pattern); # 105| free(tp); # 106| } Error: GCC_ANALYZER_WARNING (CWE-401): [#def39] less-685/tags.c: scope_hint: In function ‘findgtag’ less-685/tags.c:491:24: warning[-Wanalyzer-malloc-leak]: leak of ‘fp’ # 489| # 490| if (type != T_CTAGS_X && tag == NULL) # 491|-> return TAG_NOFILE; # 492| # 493| cleantags();
| analyzer-version-clang | 21.1.6 |
| analyzer-version-cppcheck | 2.18.3 |
| analyzer-version-gcc | 15.2.1 |
| analyzer-version-gcc-analyzer | 15.2.1 |
| analyzer-version-shellcheck | 0.11.0 |
| enabled-plugins | clang, cppcheck, gcc, shellcheck |
| exit-code | 0 |
| host | ip-172-16-1-86.us-west-2.compute.internal |
| known-false-positives | /usr/share/csmock/known-false-positives.js |
| known-false-positives-rpm | known-false-positives-0.0.0.20250521.132812.g8eff701.main-1.el9.noarch |
| mock-config | fedora-rawhide-x86_64 |
| project-name | less-685-5.fc44 |
| store-results-to | /tmp/tmpnctens2q/less-685-5.fc44.tar.xz |
| time-created | 2025-11-23 09:59:04 |
| time-finished | 2025-11-23 10:01:00 |
| tool | csmock |
| tool-args | '/usr/bin/csmock' '-r' 'fedora-rawhide-x86_64' '-t' 'clang,gcc,shellcheck,cppcheck' '-o' '/tmp/tmpnctens2q/less-685-5.fc44.tar.xz' '--gcc-analyze' '/tmp/tmpnctens2q/less-685-5.fc44.src.rpm' |
| tool-version | csmock-3.8.3.20251027.143044.ge6b947b-1.el9 |