2025-09-02 02:11 ftp://ftp.de.debian.org/debian/pool/main/n/netsend/netsend_0.0~svnr250.orig.tar.gz cppcheck-options: --library=posix --library=gnu --library=bsd --inconclusive --enable=style,information --inline-suppr --template=daca2 --disable=missingInclude --suppress=unmatchedSuppression --check-library --debug-warnings --suppress=autoNoType --suppress=valueFlowBailout --suppress=bailoutUninitVar --suppress=symbolDatabaseWarning --suppress=normalCheckLevelConditionExpressions -D__GNUC__ --platform=unix64 -j1 platform: Linux-6.8.0-79-generic-x86_64-with-glibc2.39 python: 3.12.3 client-version: 1.3.67 compiler: g++ (Ubuntu 14.2.0-4ubuntu2~24.04) 14.2.0 cppcheck: head 2.18.0 head-info: 2b51b48 (2025-09-01 15:35:55 +0200) count: 2 90 elapsed-time: 0.2 1.3 head-timing-info: old-timing-info: head results: netsend-0.0~svnr250/global.h:109:0: error: failed to evaluate #if condition, undefined function-like macro invocation: __GNUC_PREREQ( ... ) [preprocessorErrorDirective] netsend-0.0~svnr250/global.h:109:2: error: failed to evaluate #if condition, undefined function-like macro invocation: __GNUC_PREREQ( ... ) [preprocessorErrorDirective] diff: 2.18.0 netsend-0.0~svnr250/analyze.c:195:12: style: Variable 'page_size' is assigned a value that is never used. [unreadVariable] 2.18.0 netsend-0.0~svnr250/analyze.c:343:6: style: Variable 'len' is assigned a value that is never used. [unreadVariable] 2.18.0 netsend-0.0~svnr250/analyze.c:356:12: style: Variable 'page_size' is assigned a value that is never used. [unreadVariable] 2.18.0 netsend-0.0~svnr250/analyze.c:450:6: style: Variable 'len' is assigned a value that is never used. [unreadVariable] 2.18.0 netsend-0.0~svnr250/analyze.c:481:32: error: Shifting signed 64-bit value by 63 bits is undefined behaviour [shiftTooManyBitsSigned] 2.18.0 netsend-0.0~svnr250/error.c:113:24: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] 2.18.0 netsend-0.0~svnr250/error.c:115:40: warning: If memory allocation fails, then there is a possible null pointer dereference: bt_syms [nullPointerOutOfMemory] netsend-0.0~svnr250/error.c:112:29: note: Assuming allocation function fails netsend-0.0~svnr250/error.c:112:29: note: Assignment 'bt_syms=backtrace_symbols(bt,bt_size)', assigned value is 0 netsend-0.0~svnr250/error.c:115:40: note: Null pointer dereference 2.18.0 netsend-0.0~svnr250/error.c:52:12: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] 2.18.0 netsend-0.0~svnr250/error.c:70:15: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] 2.18.0 netsend-0.0~svnr250/file.c:55:25: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable O_RDONLY [valueFlowBailoutIncompleteVar] 2.18.0 netsend-0.0~svnr250/file.c:77:26: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable O_WRONLY [valueFlowBailoutIncompleteVar] 2.18.0 netsend-0.0~svnr250/getopt.c:131:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] 2.18.0 netsend-0.0~svnr250/getopt.c:169:15: warning: Either the condition '!av[2]' is redundant or there is possible null pointer dereference: str. [nullPointerRedundantCheck] netsend-0.0~svnr250/getopt.c:917:8: note: Assuming that condition '!av[2]' is not redundant netsend-0.0~svnr250/getopt.c:920:20: note: Calling function 'scan_int', 1st argument 'av[2]' value is 0 netsend-0.0~svnr250/getopt.c:169:15: note: Null pointer dereference 2.18.0 netsend-0.0~svnr250/getopt.c:169:15: warning: Null pointer dereference: str [ctunullpointer] netsend-0.0~svnr250/getopt.c:917:8: note: Assuming that condition '!av[2]' is not redundant netsend-0.0~svnr250/getopt.c:920:17: note: Calling function scan_int, 1st argument is null netsend-0.0~svnr250/getopt.c:169:15: note: Dereferencing argument str that is null 2.18.0 netsend-0.0~svnr250/getopt.c:210:40: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] 2.18.0 netsend-0.0~svnr250/getopt.c:273:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable IPPROTO_TCP [valueFlowBailoutIncompleteVar] 2.18.0 netsend-0.0~svnr250/getopt.c:335:39: style: Parameter 'optsp' can be declared as pointer to const. However it seems that 'dump_tcp_opt' is a callback function, if 'optsp' is declared with const you might also need to cast function pointer(s). [constParameterCallback] netsend-0.0~svnr250/getopt.c:686:54: note: You might need to cast the function pointer here netsend-0.0~svnr250/getopt.c:335:39: note: Parameter 'optsp' can be declared as pointer to const 2.18.0 netsend-0.0~svnr250/getopt.c:340:12: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stdout [valueFlowBailoutIncompleteVar] 2.18.0 netsend-0.0~svnr250/getopt.c:386:41: style: Parameter 'av' can be declared as const array. However it seems that 'parse_tipc_opt' is a callback function, if 'av' is declared with const you might also need to cast function pointer(s). [constParameterCallback] netsend-0.0~svnr250/getopt.c:681:41: note: You might need to cast the function pointer here netsend-0.0~svnr250/getopt.c:386:41: note: Parameter 'av' can be declared as const array 2.18.0 netsend-0.0~svnr250/getopt.c:386:59: style: Parameter 'optsp' can be declared as pointer to const. However it seems that 'parse_tipc_opt' is a callback function, if 'optsp' is declared with const you might also need to cast function pointer(s). [constParameterCallback] netsend-0.0~svnr250/getopt.c:681:41: note: You might need to cast the function pointer here netsend-0.0~svnr250/getopt.c:386:59: note: Parameter 'optsp' can be declared as pointer to const 2.18.0 netsend-0.0~svnr250/getopt.c:427:40: style: Parameter 'optsp' can be declared as pointer to const. However it seems that 'dump_tipc_opt' is a callback function, if 'optsp' is declared with const you might also need to cast function pointer(s). [constParameterCallback] netsend-0.0~svnr250/getopt.c:681:57: note: You might need to cast the function pointer here netsend-0.0~svnr250/getopt.c:427:40: note: Parameter 'optsp' can be declared as pointer to const 2.18.0 netsend-0.0~svnr250/getopt.c:438:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable IPPROTO_SCTP [valueFlowBailoutIncompleteVar] 2.18.0 netsend-0.0~svnr250/getopt.c:491:40: style: Parameter 'optsp' can be declared as pointer to const. However it seems that 'dump_sctp_opt' is a callback function, if 'optsp' is declared with const you might also need to cast function pointer(s). [constParameterCallback] netsend-0.0~svnr250/getopt.c:682:57: note: You might need to cast the function pointer here netsend-0.0~svnr250/getopt.c:491:40: note: Parameter 'optsp' can be declared as pointer to const 2.18.0 netsend-0.0~svnr250/getopt.c:523:40: style: Parameter 'optsp' can be declared as pointer to const. However it seems that 'dump_dccp_opt' is a callback function, if 'optsp' is declared with const you might also need to cast function pointer(s). [constParameterCallback] netsend-0.0~svnr250/getopt.c:683:57: note: You might need to cast the function pointer here netsend-0.0~svnr250/getopt.c:523:40: note: Parameter 'optsp' can be declared as pointer to const 2.18.0 netsend-0.0~svnr250/getopt.c:534:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SOCK_DGRAM [valueFlowBailoutIncompleteVar] 2.18.0 netsend-0.0~svnr250/getopt.c:550:25: style: Condition 'av[0][0]=='-'' is always true [knownConditionTrueFalse] netsend-0.0~svnr250/getopt.c:549:27: note: Assuming that condition 'av[0][0]!='-'' is not redundant netsend-0.0~svnr250/getopt.c:550:25: note: Condition 'av[0][0]=='-'' is always true 2.18.0 netsend-0.0~svnr250/getopt.c:550:9: style: Condition 'av[0]' is always true [knownConditionTrueFalse] 2.18.0 netsend-0.0~svnr250/getopt.c:604:3: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] 2.18.0 netsend-0.0~svnr250/getopt.c:621:43: style: Parameter 'optsp' can be declared as pointer to const. However it seems that 'dump_udplite_opt' is a callback function, if 'optsp' is declared with const you might also need to cast function pointer(s). [constParameterCallback] netsend-0.0~svnr250/getopt.c:684:65: note: You might need to cast the function pointer here netsend-0.0~svnr250/getopt.c:621:43: note: Parameter 'optsp' can be declared as pointer to const 2.18.0 netsend-0.0~svnr250/getopt.c:631:20: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable IPPROTO_UDP [valueFlowBailoutIncompleteVar] 2.18.0 netsend-0.0~svnr250/getopt.c:651:3: style: Consecutive return, break, continue, goto or throw statements are unnecessary. [duplicateBreak] 2.18.0 netsend-0.0~svnr250/getopt.c:668:39: style: Parameter 'optsp' can be declared as pointer to const. However it seems that 'dump_udp_opt' is a callback function, if 'optsp' is declared with const you might also need to cast function pointer(s). [constParameterCallback] netsend-0.0~svnr250/getopt.c:685:54: note: You might need to cast the function pointer here netsend-0.0~svnr250/getopt.c:668:39: note: Parameter 'optsp' can be declared as pointer to const 2.18.0 netsend-0.0~svnr250/getopt.c:723:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] 2.18.0 netsend-0.0~svnr250/getopt.c:737:13: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] 2.18.0 netsend-0.0~svnr250/getopt.c:781:36: style: Parameter 'optsp' can be declared as pointer to const [constParameterPointer] 2.18.0 netsend-0.0~svnr250/getopt.c:798:8: style: Variable 'tmp' can be declared as pointer to const [constVariablePointer] 2.18.0 netsend-0.0~svnr250/getopt.c:817:18: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable AF_UNSPEC [valueFlowBailoutIncompleteVar] 2.18.0 netsend-0.0~svnr250/getopt.c:832:52: style: Condition '&av[1][1]!=NULL' is always true [knownConditionTrueFalse] head netsend-0.0~svnr250/global.h:109:0: error: failed to evaluate #if condition, undefined function-like macro invocation: __GNUC_PREREQ( ... ) [preprocessorErrorDirective] head netsend-0.0~svnr250/global.h:109:2: error: failed to evaluate #if condition, undefined function-like macro invocation: __GNUC_PREREQ( ... ) [preprocessorErrorDirective] 2.18.0 netsend-0.0~svnr250/global.h:374:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable RUSAGE_SELF [valueFlowBailoutIncompleteVar] 2.18.0 netsend-0.0~svnr250/main.c:186:14: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] 2.18.0 netsend-0.0~svnr250/main.c:92:40: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SIG_IGN [valueFlowBailoutIncompleteVar] 2.18.0 netsend-0.0~svnr250/net.c:109:10: style: Condition 'ret!=0' is always false [knownConditionTrueFalse] netsend-0.0~svnr250/net.c:108:24: note: Calling function 'get_ip_sock_opts' returns 0 netsend-0.0~svnr250/net.c:108:24: note: Assignment 'ret=get_ip_sock_opts(fd,ns)', assigned value is 0 netsend-0.0~svnr250/net.c:109:10: note: Condition 'ret!=0' is always false 2.18.0 netsend-0.0~svnr250/net.c:152:25: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable IPPROTO_TCP [valueFlowBailoutIncompleteVar] 2.18.0 netsend-0.0~svnr250/net.c:48:53: error: Uninitialized variable: &ret_size [uninitvar] 2.18.0 netsend-0.0~svnr250/net.c:82:40: style: Checking if unsigned expression 'ns->sock_stat.mss' is less than zero. [unsignedLessThanZero] 2.18.0 netsend-0.0~svnr250/net.c:83:11: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable stderr [valueFlowBailoutIncompleteVar] 2.18.0 netsend-0.0~svnr250/ns_hdr.c:139:24: style: Variable 'ns_rtt_reply' can be declared as pointer to const [constVariablePointer] 2.18.0 netsend-0.0~svnr250/ns_hdr.c:304:17: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable SA_INTERRUPT [valueFlowBailoutIncompleteVar] 2.18.0 netsend-0.0~svnr250/ns_hdr.c:379:22: style: Variable 'ns_rtt_info' can be declared as pointer to const [constVariablePointer] 2.18.0 netsend-0.0~svnr250/ns_hdr.c:384:14: style: Variable 'ns_rtt_info' is assigned a value that is never used. [unreadVariable] 2.18.0 netsend-0.0~svnr250/ns_hdr.c:61:8: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] 2.18.0 netsend-0.0~svnr250/ns_hdr.c:82:8: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] 2.18.0 netsend-0.0~svnr250/proto_dccp_trans.c:64:26: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable AI_ADDRCONFIG [valueFlowBailoutIncompleteVar] 2.18.0 netsend-0.0~svnr250/proto_dccp_trans.c:70:15: style: Variable 'addrtmp' is reassigned a value before the old one has been used. [redundantAssignment] netsend-0.0~svnr250/proto_dccp_trans.c:68:10: note: addrtmp is assigned netsend-0.0~svnr250/proto_dccp_trans.c:70:15: note: addrtmp is overwritten 2.18.0 netsend-0.0~svnr250/proto_dccp_trans.c:84:14: portability: Non reentrant function 'getprotobynumber' called. For threadsafe applications it is recommended to use the reentrant replacement function 'getprotobynumber_r'. [prohibitedgetprotobynumberCalled] 2.18.0 netsend-0.0~svnr250/proto_sctp_trans.c:60:26: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable IPPROTO_SCTP [valueFlowBailoutIncompleteVar] 2.18.0 netsend-0.0~svnr250/proto_sctp_trans.c:67:15: style: Variable 'addrtmp' is reassigned a value before the old one has been used. [redundantAssignment] netsend-0.0~svnr250/proto_sctp_trans.c:65:10: note: addrtmp is assigned netsend-0.0~svnr250/proto_sctp_trans.c:67:15: note: addrtmp is overwritten 2.18.0 netsend-0.0~svnr250/proto_sctp_trans.c:81:14: portability: Non reentrant function 'getprotobynumber' called. For threadsafe applications it is recommended to use the reentrant replacement function 'getprotobynumber_r'. [prohibitedgetprotobynumberCalled] 2.18.0 netsend-0.0~svnr250/proto_tcp_trans.c:103:14: portability: Non reentrant function 'getprotobynumber' called. For threadsafe applications it is recommended to use the reentrant replacement function 'getprotobynumber_r'. [prohibitedgetprotobynumberCalled] 2.18.0 netsend-0.0~svnr250/proto_tcp_trans.c:58:5: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable _x [valueFlowBailoutIncompleteVar] 2.18.0 netsend-0.0~svnr250/proto_tcp_trans.c:82:26: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable IPPROTO_TCP [valueFlowBailoutIncompleteVar] 2.18.0 netsend-0.0~svnr250/proto_tcp_trans.c:89:15: style: Variable 'addrtmp' is reassigned a value before the old one has been used. [redundantAssignment] netsend-0.0~svnr250/proto_tcp_trans.c:87:10: note: addrtmp is assigned netsend-0.0~svnr250/proto_tcp_trans.c:89:15: note: addrtmp is overwritten 2.18.0 netsend-0.0~svnr250/proto_tipc_trans.c:52:24: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable AF_TIPC [valueFlowBailoutIncompleteVar] 2.18.0 netsend-0.0~svnr250/proto_tipc_trans.c:55:9: style: Condition 'fd<0' is always true [knownConditionTrueFalse] netsend-0.0~svnr250/proto_tipc_trans.c:54:26: note: Calling function 'tipc_socket_connect' returns -1 netsend-0.0~svnr250/proto_tipc_trans.c:54:26: note: Assignment 'fd=tipc_socket_connect()', assigned value is -1 netsend-0.0~svnr250/proto_tipc_trans.c:55:9: note: Condition 'fd<0' is always true 2.18.0 netsend-0.0~svnr250/proto_udp_trans.c:61:26: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable IPPROTO_UDP [valueFlowBailoutIncompleteVar] 2.18.0 netsend-0.0~svnr250/proto_udp_trans.c:68:15: style: Variable 'addrtmp' is reassigned a value before the old one has been used. [redundantAssignment] netsend-0.0~svnr250/proto_udp_trans.c:66:10: note: addrtmp is assigned netsend-0.0~svnr250/proto_udp_trans.c:68:15: note: addrtmp is overwritten 2.18.0 netsend-0.0~svnr250/proto_udp_trans.c:82:14: portability: Non reentrant function 'getprotobynumber' called. For threadsafe applications it is recommended to use the reentrant replacement function 'getprotobynumber_r'. [prohibitedgetprotobynumberCalled] 2.18.0 netsend-0.0~svnr250/proto_udplite_recv.c:38:46: style: Parameter 'optsp' can be declared as pointer to const [constParameterPointer] 2.18.0 netsend-0.0~svnr250/proto_udplite_trans.c:107:14: portability: Non reentrant function 'getprotobynumber' called. For threadsafe applications it is recommended to use the reentrant replacement function 'getprotobynumber_r'. [prohibitedgetprotobynumberCalled] 2.18.0 netsend-0.0~svnr250/proto_udplite_trans.c:87:26: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable AI_ADDRCONFIG [valueFlowBailoutIncompleteVar] 2.18.0 netsend-0.0~svnr250/proto_udplite_trans.c:93:15: style: Variable 'addrtmp' is reassigned a value before the old one has been used. [redundantAssignment] netsend-0.0~svnr250/proto_udplite_trans.c:91:10: note: addrtmp is assigned netsend-0.0~svnr250/proto_udplite_trans.c:93:15: note: addrtmp is overwritten 2.18.0 netsend-0.0~svnr250/receive.c:109:54: style: Parameter 'mreq6' can be declared as pointer to const [constParameterPointer] 2.18.0 netsend-0.0~svnr250/receive.c:186:26: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable AI_PASSIVE [valueFlowBailoutIncompleteVar] 2.18.0 netsend-0.0~svnr250/receive.c:271:40: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable AI_ADDRCONFIG [valueFlowBailoutIncompleteVar] 2.18.0 netsend-0.0~svnr250/receive.c:51:65: style: Parameter 'phi' can be declared as pointer to const [constParameterPointer] 2.18.0 netsend-0.0~svnr250/receive.c:71:25: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] 2.18.0 netsend-0.0~svnr250/receive.c:97:52: style: Parameter 'mreq' can be declared as pointer to const [constParameterPointer] 2.18.0 netsend-0.0~svnr250/trans_common.c:149:29: style: int result is assigned to long long variable. If the variable is long long to avoid loss of information, then you have loss of information. [truncLongCastAssignment] 2.18.0 netsend-0.0~svnr250/trans_common.c:179:3: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] 2.18.0 netsend-0.0~svnr250/trans_common.c:192:9: style: Variable 'tmpbuf' can be declared as pointer to const [constVariablePointer] 2.18.0 netsend-0.0~svnr250/trans_common.c:201:9: style: Variable 'tmpbuf' can be declared as pointer to const [constVariablePointer] 2.18.0 netsend-0.0~svnr250/trans_common.c:58:34: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable POSIX_MADV_SEQUENTIAL [valueFlowBailoutIncompleteVar] 2.18.0 netsend-0.0~svnr250/trans_common.c:74:34: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable POSIX_FADV_SEQUENTIAL [valueFlowBailoutIncompleteVar] 2.18.0 netsend-0.0~svnr250/trans_common.c:97:8: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] 2.18.0 netsend-0.0~svnr250/xfuncs.c:131:6: style: Condition '!len' is always false [knownConditionTrueFalse] netsend-0.0~svnr250/xfuncs.c:129:20: note: Assignment 'len=strlen(src)+1', assigned value is greater than 0 netsend-0.0~svnr250/xfuncs.c:131:6: note: Condition '!len' is always false 2.18.0 netsend-0.0~svnr250/xfuncs.c:138:56: style:inconclusive: Function 'xfstat' argument 3 names different: declaration 'str' definition 's'. [funcArgNamesDifferent] netsend-0.0~svnr250/xfuncs.h:28:56: note: Function 'xfstat' argument 3 names different: declaration 'str' definition 's'. netsend-0.0~svnr250/xfuncs.c:138:56: note: Function 'xfstat' argument 3 names different: declaration 'str' definition 's'. 2.18.0 netsend-0.0~svnr250/xfuncs.c:46:16: style:inconclusive: Function 'xmalloc' argument 1 names different: declaration 'len' definition 'size'. [funcArgNamesDifferent] netsend-0.0~svnr250/xfuncs.h:9:22: note: Function 'xmalloc' argument 1 names different: declaration 'len' definition 'size'. netsend-0.0~svnr250/xfuncs.c:46:16: note: Function 'xmalloc' argument 1 names different: declaration 'len' definition 'size'. 2.18.0 netsend-0.0~svnr250/xfuncs.c:52:3: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable errno [valueFlowBailoutIncompleteVar] 2.18.0 netsend-0.0~svnr250/xfuncs.c:72:25: debug: valueFlowConditionExpressions bailout: Skipping function due to incomplete variable IPPROTO_TCP [valueFlowBailoutIncompleteVar] 2.18.0 netsend-0.0~svnr250/xfuncs.h:14:6: style: Condition 'p' is always true [knownConditionTrueFalse] DONE