{"id":2224286,"url":"http://patchwork.ozlabs.org/api/1.2/patches/2224286/?format=json","web_url":"http://patchwork.ozlabs.org/project/ltp/patch/20260417084758.329107-2-pvorel@suse.cz/","project":{"id":59,"url":"http://patchwork.ozlabs.org/api/1.2/projects/59/?format=json","name":"Linux Test Project development","link_name":"ltp","list_id":"ltp.lists.linux.it","list_email":"ltp@lists.linux.it","web_url":"","scm_url":"","webscm_url":"","list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<20260417084758.329107-2-pvorel@suse.cz>","list_archive_url":null,"date":"2026-04-17T08:47:58","name":"[2/2] lib: Be pedantic on invalid comparison check","commit_ref":null,"pull_url":null,"state":"needs-review-ack","archived":false,"hash":"f82bcc9fee60b1e4593695f25a2d7652a7549422","submitter":{"id":70792,"url":"http://patchwork.ozlabs.org/api/1.2/people/70792/?format=json","name":"Petr Vorel","email":"pvorel@suse.cz"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/ltp/patch/20260417084758.329107-2-pvorel@suse.cz/mbox/","series":[{"id":500278,"url":"http://patchwork.ozlabs.org/api/1.2/series/500278/?format=json","web_url":"http://patchwork.ozlabs.org/project/ltp/list/?series=500278","date":"2026-04-17T08:47:58","name":"[1/2] safe_stdio: More checks for invalid function return values","version":1,"mbox":"http://patchwork.ozlabs.org/series/500278/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2224286/comments/","check":"warning","checks":"http://patchwork.ozlabs.org/api/patches/2224286/checks/","tags":{},"related":[],"headers":{"Return-Path":"<ltp-bounces+incoming=patchwork.ozlabs.org@lists.linux.it>","X-Original-To":["incoming@patchwork.ozlabs.org","ltp@lists.linux.it"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","ltp@picard.linux.it"],"Authentication-Results":["legolas.ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n unprotected) header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256\n header.s=susede2_rsa header.b=wbJLdSIS;\n\tdkim=fail reason=\"signature verification failed\" header.d=suse.cz\n header.i=@suse.cz header.a=ed25519-sha256 header.s=susede2_ed25519\n header.b=z4w+RFkg;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key)\n header.d=suse.cz header.i=@suse.cz header.a=rsa-sha256 header.s=susede2_rsa\n header.b=v20GVU3v;\n\tdkim=neutral header.d=suse.cz header.i=@suse.cz header.a=ed25519-sha256\n header.s=susede2_ed25519 header.b=G0TIF4p0;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.linux.it\n (client-ip=213.254.12.146; helo=picard.linux.it;\n envelope-from=ltp-bounces+incoming=patchwork.ozlabs.org@lists.linux.it;\n receiver=patchwork.ozlabs.org)","smtp-out1.suse.de;\n\tnone"],"Received":["from picard.linux.it (picard.linux.it [213.254.12.146])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fxpSL6ns0z1yD3\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 17 Apr 2026 18:48:18 +1000 (AEST)","from picard.linux.it (localhost [IPv6:::1])\n\tby picard.linux.it (Postfix) with ESMTP id 51CAE3E291F\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 17 Apr 2026 10:48:16 +0200 (CEST)","from in-5.smtp.seeweb.it (in-5.smtp.seeweb.it\n [IPv6:2001:4b78:1:20::5])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange X25519 server-signature ECDSA (secp384r1))\n (No client certificate requested)\n by picard.linux.it (Postfix) with ESMTPS id 88B193E2627\n for <ltp@lists.linux.it>; Fri, 17 Apr 2026 10:48:12 +0200 (CEST)","from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest\n SHA256)\n (No client certificate requested)\n by in-5.smtp.seeweb.it (Postfix) with ESMTPS id 02052600B2B\n for <ltp@lists.linux.it>; Fri, 17 Apr 2026 10:48:10 +0200 (CEST)","from imap1.dmz-prg2.suse.org (unknown [10.150.64.97])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest\n SHA256)\n (No client certificate requested)\n by smtp-out1.suse.de (Postfix) with ESMTPS id 12FE26A869;\n Fri, 17 Apr 2026 08:48:06 +0000 (UTC)","from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest\n SHA256)\n (No client certificate requested)\n by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id EB060593AF;\n Fri, 17 Apr 2026 08:48:05 +0000 (UTC)","from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])\n by imap1.dmz-prg2.suse.org with ESMTPSA id oMRxOMXz4WmUUAAAD6G6ig\n (envelope-from <pvorel@suse.cz>); Fri, 17 Apr 2026 08:48:05 +0000"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz;\n s=susede2_rsa;\n t=1776415690;\n h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:\n mime-version:mime-version:\n content-transfer-encoding:content-transfer-encoding:\n in-reply-to:in-reply-to:references:references;\n bh=mnn54T+JcoPAUZcr9+j97ooam/LQDn34ym6lS4lS4PM=;\n b=wbJLdSISidImbocpwLOr9V6CzbfE8DwTK7Mwe1C/U9WABhr6FEjiyCOqO+Ax8yKPL3jSFC\n W9QruBHXuQPGeoQS97XQpp3gYeSCTAe94fYjEYK4uCDriaaimn2WwXjpeFl+Dpoe1jCDzZ\n oOuKL+2zmT7GM5ZC43Qo8A+QT34ld7o=","v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz;\n s=susede2_ed25519; t=1776415690;\n h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:\n mime-version:mime-version:\n content-transfer-encoding:content-transfer-encoding:\n in-reply-to:in-reply-to:references:references;\n bh=mnn54T+JcoPAUZcr9+j97ooam/LQDn34ym6lS4lS4PM=;\n b=z4w+RFkgCw+kLzpBn/YVwUnaX0CLnXxf490KthbM1vHnG0804PhiKD8f19/85jXGKPZoia\n 9qW2xuzxdT6o4KCw==","v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz;\n s=susede2_rsa;\n t=1776415686;\n h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:\n mime-version:mime-version:\n content-transfer-encoding:content-transfer-encoding:\n in-reply-to:in-reply-to:references:references;\n bh=mnn54T+JcoPAUZcr9+j97ooam/LQDn34ym6lS4lS4PM=;\n b=v20GVU3vNd6EDw7opH6VKZD7Iiiy7TInmnI9AK8t5f/k0YgBhR1yL/mFj4nFq4z7Ca41Ne\n 14WqJwBkN1OQeUGQUilIExP317fP19gbf+whDLu3nJUjP4Tnko1FZlbjkNB874SWguSRuy\n f98ueOdLDUqINksFEcFlkq/QuN3RD6M=","v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz;\n s=susede2_ed25519; t=1776415686;\n h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:\n mime-version:mime-version:\n content-transfer-encoding:content-transfer-encoding:\n in-reply-to:in-reply-to:references:references;\n bh=mnn54T+JcoPAUZcr9+j97ooam/LQDn34ym6lS4lS4PM=;\n b=G0TIF4p0vh1SV9TxjMvfG6ud09cps2iOgm/9ydqq8WBpcEKHaO0HVRLFhyq4FeICWrYiaz\n ZcGYKkL3jdMVEJAw=="],"From":"Petr Vorel <pvorel@suse.cz>","To":"ltp@lists.linux.it","Date":"Fri, 17 Apr 2026 10:47:58 +0200","Message-ID":"<20260417084758.329107-2-pvorel@suse.cz>","X-Mailer":"git-send-email 2.53.0","In-Reply-To":"<20260417084758.329107-1-pvorel@suse.cz>","References":"<20260417084758.329107-1-pvorel@suse.cz>","MIME-Version":"1.0","X-Spam-Score":"-6.80","X-Spam-Level":"","X-Spamd-Result":"default: False [-6.80 / 50.00]; REPLY(-4.00)[];\n BAYES_HAM(-3.00)[100.00%]; NEURAL_HAM_LONG(-1.00)[-1.000];\n MID_CONTAINS_FROM(1.00)[]; R_MISSING_CHARSET(0.50)[];\n NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain];\n RCVD_COUNT_TWO(0.00)[2]; ARC_NA(0.00)[];\n RCVD_VIA_SMTP_AUTH(0.00)[]; FROM_HAS_DN(0.00)[];\n MIME_TRACE(0.00)[0:+]; TO_MATCH_ENVRCPT_ALL(0.00)[];\n FUZZY_RATELIMITED(0.00)[rspamd.com];\n DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo];\n DKIM_SIGNED(0.00)[suse.cz:s=susede2_rsa,suse.cz:s=susede2_ed25519];\n FROM_EQ_ENVFROM(0.00)[]; TO_DN_SOME(0.00)[];\n RCPT_COUNT_TWO(0.00)[2]; RCVD_TLS_ALL(0.00)[]","X-Spam-Status":"No, score=0.1 required=7.0 tests=DKIM_SIGNED,DKIM_VALID,\n DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS shortcircuit=no\n autolearn=disabled version=4.0.1","X-Spam-Checker-Version":"SpamAssassin 4.0.1 (2024-03-25) on in-5.smtp.seeweb.it","X-Virus-Scanned":"clamav-milter 1.0.9 at in-5.smtp.seeweb.it","X-Virus-Status":"Clean","Subject":"[LTP] [PATCH 2/2] lib: Be pedantic on invalid comparison check","X-BeenThere":"ltp@lists.linux.it","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"Linux Test Project <ltp.lists.linux.it>","List-Unsubscribe":"<https://lists.linux.it/options/ltp>,\n <mailto:ltp-request@lists.linux.it?subject=unsubscribe>","List-Archive":"<http://lists.linux.it/pipermail/ltp/>","List-Post":"<mailto:ltp@lists.linux.it>","List-Help":"<mailto:ltp-request@lists.linux.it?subject=help>","List-Subscribe":"<https://lists.linux.it/listinfo/ltp>,\n <mailto:ltp-request@lists.linux.it?subject=subscribe>","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"7bit","Errors-To":"ltp-bounces+incoming=patchwork.ozlabs.org@lists.linux.it","Sender":"\"ltp\" <ltp-bounces+incoming=patchwork.ozlabs.org@lists.linux.it>"},"content":"Invalid return values are when \"ret < -1\". While \"ret < 0\" mostly works\ndue previous check \"ret == -1\" it can have misleading message when after\ncode refactoring.\n\nSigned-off-by: Petr Vorel <pvorel@suse.cz>\n---\n lib/safe_file_ops.c     |  2 +-\n lib/safe_macros.c       | 16 ++++++++--------\n lib/safe_net.c          | 14 +++++++-------\n lib/safe_stdio.c        |  4 ++--\n lib/tst_safe_io_uring.c |  4 ++--\n lib/tst_safe_macros.c   | 16 ++++++++--------\n lib/tst_safe_sysv_ipc.c | 10 +++++-----\n lib/tst_safe_timerfd.c  |  2 +-\n lib/tst_security.c      |  2 +-\n 9 files changed, 35 insertions(+), 35 deletions(-)","diff":"diff --git a/lib/safe_file_ops.c b/lib/safe_file_ops.c\nindex 8314c4b1bb..0982274120 100644\n--- a/lib/safe_file_ops.c\n+++ b/lib/safe_file_ops.c\n@@ -361,7 +361,7 @@ int safe_touch(const char *file, const int lineno,\n \t\ttst_brkm_(file, lineno, TBROK | TERRNO, cleanup_fn,\n \t\t\t\"Failed to open file '%s'\", pathname);\n \t\treturn ret;\n-\t} else if (ret < 0) {\n+\t} else if (ret < -1) {\n \t\ttst_brkm_(file, lineno, TBROK | TERRNO, cleanup_fn,\n \t\t\t\"Invalid open(%s) return value %d\", pathname, ret);\n \t\treturn ret;\ndiff --git a/lib/safe_macros.c b/lib/safe_macros.c\nindex 68b8747b4d..22b321fc45 100644\n--- a/lib/safe_macros.c\n+++ b/lib/safe_macros.c\n@@ -89,7 +89,7 @@ safe_creat(const char *file, const int lineno, void (*cleanup_fn) (void),\n \tif (rval == -1) {\n \t\ttst_brkm_(file, lineno, TBROK | TERRNO, cleanup_fn,\n \t\t\t\"creat(%s,%04o) failed\", pathname, mode);\n-\t} else if (rval < 0) {\n+\t} else if (rval < -1) {\n \t\ttst_brkm_(file, lineno, TBROK | TERRNO, cleanup_fn,\n \t\t\t\"Invalid creat(%s,%04o) return value %d\", pathname,\n \t\t\tmode, rval);\n@@ -258,7 +258,7 @@ int safe_open(const char *file, const int lineno, void (*cleanup_fn) (void),\n \tif (rval == -1) {\n \t\ttst_brkm_(file, lineno, TBROK | TERRNO, cleanup_fn,\n \t\t\t\"open(%s,%d,%04o) failed\", pathname, oflags, mode);\n-\t} else if (rval < 0) {\n+\t} else if (rval < -1) {\n \t\ttst_brkm_(file, lineno, TBROK | TERRNO, cleanup_fn,\n \t\t\t\"Invalid open(%s,%d,%04o) return value %d\", pathname,\n \t\t\toflags, mode, rval);\n@@ -297,7 +297,7 @@ ssize_t safe_read(const char *file, const int lineno, void (*cleanup_fn) (void),\n \t\ttst_brkm_(file, lineno, TBROK | TERRNO, cleanup_fn,\n \t\t\t\"read(%d,%p,%zu) failed, returned %zd\", fildes, buf,\n \t\t\tnbyte, rval);\n-\t} else if (rval < 0) {\n+\t} else if (rval < -1) {\n \t\ttst_brkm_(file, lineno, TBROK | TERRNO, cleanup_fn,\n \t\t\t\"Invalid read(%d,%p,%zu) return value %zd\", fildes,\n \t\t\tbuf, nbyte, rval);\n@@ -495,7 +495,7 @@ ssize_t safe_readlink(const char *file, const int lineno,\n \tif (rval == -1) {\n \t\ttst_brkm_(file, lineno, TBROK | TERRNO, cleanup_fn,\n \t\t\t\"readlink(%s,%p,%zu) failed\", path, buf, bufsize);\n-\t} else if (rval < 0) {\n+\t} else if (rval < -1) {\n \t\ttst_brkm_(file, lineno, TBROK | TERRNO, cleanup_fn,\n \t\t\t\"Invalid readlink(%s,%p,%zu) return value %zd\", path,\n \t\t\tbuf, bufsize, rval);\n@@ -554,7 +554,7 @@ ssize_t safe_write(const char *file, const int lineno, void (cleanup_fn) (void),\n \t\t\treturn rval;\n \t\t}\n \n-\t\tif (rval < 0) {\n+\t\tif (rval < -1) {\n \t\t\ttst_brkm_(file, lineno, TBROK, cleanup_fn,\n \t\t\t          \"invalid write() return value %zi\",\n \t\t\t\t  rval);\n@@ -804,7 +804,7 @@ pid_t safe_wait(const char *file, const int lineno, void (cleanup_fn)(void),\n \tif (rval == -1) {\n \t\ttst_brkm_(file, lineno, TBROK | TERRNO, cleanup_fn,\n \t\t\t\"wait(%p) failed\", status);\n-\t} else if (rval < 0) {\n+\t} else if (rval < -1) {\n \t\ttst_brkm_(file, lineno, TBROK | TERRNO, cleanup_fn,\n \t\t\t\"Invalid wait(%p) return value %d\", status, rval);\n \t}\n@@ -822,7 +822,7 @@ pid_t safe_waitpid(const char *file, const int lineno, void (cleanup_fn)(void),\n \tif (rval == -1) {\n \t\ttst_brkm_(file, lineno, TBROK | TERRNO, cleanup_fn,\n \t\t\t\"waitpid(%d,%p,%d) failed\", pid, status, opts);\n-\t} else if (rval < 0) {\n+\t} else if (rval < -1) {\n \t\ttst_brkm_(file, lineno, TBROK | TERRNO, cleanup_fn,\n \t\t\t\"Invalid waitpid(%d,%p,%d) return value %d\", pid,\n \t\t\tstatus, opts, rval);\n@@ -1116,7 +1116,7 @@ ssize_t safe_getxattr(const char *file, const int lineno, const char *path,\n \t\ttst_brkm_(file, lineno, TBROK | TERRNO, NULL,\n \t\t\t\"getxattr(%s, %s, %p, %zu) failed\",\n \t\t\tpath, name, value, size);\n-\t} else if (rval < 0) {\n+\t} else if (rval < -1) {\n \t\ttst_brkm_(file, lineno, TBROK | TERRNO, NULL,\n \t\t\t\"Invalid getxattr(%s, %s, %p, %zu) return value %zd\",\n \t\t\tpath, name, value, size, rval);\ndiff --git a/lib/safe_net.c b/lib/safe_net.c\nindex 5dec0de113..37a980fae9 100644\n--- a/lib/safe_net.c\n+++ b/lib/safe_net.c\n@@ -127,7 +127,7 @@ int safe_socket(const char *file, const int lineno, void (cleanup_fn)(void),\n \n \t\ttst_brkm_(file, lineno, ttype | TERRNO, cleanup_fn,\n \t\t\t\"socket(%d, %d, %d) failed\", domain, type, protocol);\n-\t} else if (rval < 0) {\n+\t} else if (rval < -1) {\n \t\ttst_brkm_(file, lineno, TBROK | TERRNO, cleanup_fn,\n \t\t\t\"Invalid socket(%d, %d, %d) return value %d\", domain,\n \t\t\ttype, protocol, rval);\n@@ -215,7 +215,7 @@ ssize_t safe_send(const char *file, const int lineno, char len_strict,\n \t\ttst_brkm_(file, lineno, TBROK | TERRNO, NULL,\n \t\t\t\"send(%d, %p, %zu, %d) failed\", sockfd, buf, len,\n \t\t\tflags);\n-\t} else if (rval < 0) {\n+\t} else if (rval < -1) {\n \t\ttst_brkm_(file, lineno, TBROK | TERRNO, NULL,\n \t\t\t\"Invalid send(%d, %p, %zu, %d) return value %zd\",\n \t\t\tsockfd, buf, len, flags, rval);\n@@ -239,7 +239,7 @@ ssize_t safe_sendto(const char *file, const int lineno, char len_strict,\n \t\t\tsockfd, buf, len, flags,\n \t\t\ttst_sock_addr(dest_addr, addrlen, res, sizeof(res)),\n \t\t\taddrlen);\n-\t} else if (rval < 0) {\n+\t} else if (rval < -1) {\n \t\ttst_brkm_(file, lineno, TBROK | TERRNO, NULL,\n \t\t\t\"Invalid sendto(%d, %p, %zu, %d, %s, %d) return value %zd\",\n \t\t\tsockfd, buf, len, flags,\n@@ -260,7 +260,7 @@ ssize_t safe_sendmsg(const char *file, const int lineno, size_t len,\n \tif (rval == -1) {\n \t\ttst_brkm_(file, lineno, TBROK | TERRNO, NULL,\n \t\t\t\"sendmsg(%d, %p, %d) failed\", sockfd, msg, flags);\n-\t} else if (rval < 0) {\n+\t} else if (rval < -1) {\n \t\ttst_brkm_(file, lineno, TBROK | TERRNO, NULL,\n \t\t\t\"Invalid sendmsg(%d, %p, %d) return value %zd\",\n \t\t\tsockfd, msg, flags, rval);\n@@ -284,7 +284,7 @@ ssize_t safe_recv(const char *file, const int lineno, size_t len,\n \t\ttst_brkm_(file, lineno, TBROK | TERRNO, NULL,\n \t\t\t\"recv(%d, %p, %zu, %d) failed\", sockfd, buf, size,\n \t\t\tflags);\n-\t} else if (rval < 0) {\n+\t} else if (rval < -1) {\n \t\ttst_brkm_(file, lineno, TBROK | TERRNO, NULL,\n \t\t\t\"Invalid recv(%d, %p, %zu, %d) return value %zd\",\n \t\t\tsockfd, buf, size, flags, rval);\n@@ -308,7 +308,7 @@ ssize_t safe_recvmsg(const char *file, const int lineno, size_t len,\n \tif (rval == -1) {\n \t\ttst_brkm_(file, lineno, TBROK | TERRNO, NULL,\n \t\t\t\"recvmsg(%d, %p, %d) failed\", sockfd, msg, flags);\n-\t} else if (rval < 0) {\n+\t} else if (rval < -1) {\n \t\ttst_brkm_(file, lineno, TBROK | TERRNO, NULL,\n \t\t\t\"Invalid recvmsg(%d, %p, %d) return value %zd\",\n \t\t\tsockfd, msg, flags, rval);\n@@ -396,7 +396,7 @@ int safe_accept(const char *file, const int lineno, void (cleanup_fn)(void),\n \tif (rval == -1) {\n \t\ttst_brkm_(file, lineno, TBROK | TERRNO, cleanup_fn,\n \t\t\t\"accept(%d, %p, %d) failed\", sockfd, addr, *addrlen);\n-\t} else if (rval < 0) {\n+\t} else if (rval < -1) {\n \t\ttst_brkm_(file, lineno, TBROK | TERRNO, cleanup_fn,\n \t\t\t\"Invalid accept(%d, %p, %d) return value %d\", sockfd,\n \t\t\taddr, *addrlen, rval);\ndiff --git a/lib/safe_stdio.c b/lib/safe_stdio.c\nindex ed5bca0072..27b38aadcc 100644\n--- a/lib/safe_stdio.c\n+++ b/lib/safe_stdio.c\n@@ -67,7 +67,7 @@ int safe_asprintf(const char *file, const int lineno, void (cleanup_fn)(void),\n \tif (ret == -1) {\n \t\ttst_brkm_(file, lineno, TBROK | TERRNO, cleanup_fn,\n \t\t\t\"asprintf(%s,...) failed\", fmt);\n-\t} else if (ret < 0) {\n+\t} else if (ret < -1) {\n \t\ttst_brkm_(file, lineno, TBROK | TERRNO, cleanup_fn,\n \t\t\t\"Invalid asprintf(%s,...) return value %d\", fmt, ret);\n \t}\n@@ -154,7 +154,7 @@ int safe_fseek(const char *file, const int lineno,\n \tif (ret == -1) {\n \t\ttst_brkm_(file, lineno, TBROK | TERRNO, NULL,\n \t\t\t\"fseek(%p, %ld, %d) failed\", f, offset, whence);\n-\t} else if (ret < 0) {\n+\t} else if (ret < -1) {\n \t\ttst_brkm_(file, lineno, TBROK | TERRNO, NULL,\n \t\t\t\"Invalid fseek(%p, %ld, %d) return value %d\",\n \t\t\tf, offset, whence, ret);\ndiff --git a/lib/tst_safe_io_uring.c b/lib/tst_safe_io_uring.c\nindex de6869f501..627cedfe02 100644\n--- a/lib/tst_safe_io_uring.c\n+++ b/lib/tst_safe_io_uring.c\n@@ -21,7 +21,7 @@ int safe_io_uring_init(const char *file, const int lineno,\n \t\ttst_brk_(file, lineno, TBROK | TERRNO,\n \t\t\t\"io_uring_setup() failed\");\n \t\treturn uring->fd;\n-\t} else if (uring->fd < 0) {\n+\t} else if (uring->fd < -1) {\n \t\ttst_brk_(file, lineno, TBROK | TERRNO,\n \t\t\t\"io_uring_setup() returned invalid value %d\",\n \t\t\turing->fd);\n@@ -98,7 +98,7 @@ int safe_io_uring_enter(const char *file, const int lineno, int strict,\n \tif (ret == -1) {\n \t\ttst_brk_(file, lineno, TBROK | TERRNO,\n \t\t\t\"io_uring_enter() failed\");\n-\t} else if (ret < 0) {\n+\t} else if (ret < -1) {\n \t\ttst_brk_(file, lineno, TBROK | TERRNO,\n \t\t\t\"Invalid io_uring_enter() return value %d\", ret);\n \t} else if (strict && to_submit != (unsigned int)ret) {\ndiff --git a/lib/tst_safe_macros.c b/lib/tst_safe_macros.c\nindex cdc8c7dd33..a893f73231 100644\n--- a/lib/tst_safe_macros.c\n+++ b/lib/tst_safe_macros.c\n@@ -68,7 +68,7 @@ pid_t safe_getpgid(const char *file, const int lineno, pid_t pid)\n \tif (pgid == -1) {\n \t\ttst_brk_(file, lineno, TBROK | TERRNO, \"getpgid(%i) failed\",\n \t\t\tpid);\n-\t} else if (pgid < 0) {\n+\t} else if (pgid < -1) {\n \t\ttst_brk_(file, lineno, TBROK | TERRNO,\n \t\t\t\"Invalid getpgid(%i) return value %d\", pid, pgid);\n \t}\n@@ -103,7 +103,7 @@ int safe_getgroups(const char *file, const int lineno, int size, gid_t list[])\n \tif (rval == -1) {\n \t\ttst_brk_(file, lineno, TBROK | TERRNO,\n \t\t\t\"getgroups(%i, %p)\", size, list);\n-\t} else if (rval < 0) {\n+\t} else if (rval < -1) {\n \t\ttst_brk_(file, lineno, TBROK | TERRNO,\n \t\t\t\"Invalid getgroups(%i, %p) return value %d\", size,\n \t\t\tlist, rval);\n@@ -120,7 +120,7 @@ int safe_personality(const char *filename, unsigned int lineno,\n \tif (prev_persona == -1) {\n \t\ttst_brk_(filename, lineno, TBROK | TERRNO,\n \t\t\t \"persona(%ld) failed\", persona);\n-\t} else if (prev_persona < 0) {\n+\t} else if (prev_persona < -1) {\n \t\ttst_brk_(filename, lineno, TBROK | TERRNO,\n \t\t\t \"Invalid persona(%ld) return value %d\", persona,\n \t\t\t prev_persona);\n@@ -139,7 +139,7 @@ int safe_pidfd_open(const char *file, const int lineno, pid_t pid,\n \tif (rval == -1) {\n \t\ttst_brk_(file, lineno, TBROK | TERRNO,\n \t\t\t \"pidfd_open(%i, %i) failed\", pid, flags);\n-\t} else if (rval < 0) {\n+\t} else if (rval < -1) {\n \t\ttst_brk_(file, lineno, TBROK | TERRNO,\n \t\t\t \"Invalid pidfd_open(%i, %i) return value %d\",\n \t\t\t pid, flags, rval);\n@@ -521,7 +521,7 @@ int safe_dup(const char *file, const int lineno, int oldfd)\n \tif (rval == -1) {\n \t\ttst_brk_(file, lineno, TBROK | TERRNO,\n \t\t\t\"dup(%i) failed\", oldfd);\n-\t} else if (rval < 0) {\n+\t} else if (rval < -1) {\n \t\ttst_brk_(file, lineno, TBROK | TERRNO,\n \t\t\t\"Invalid dup(%i) return value %d\", oldfd, rval);\n \t}\n@@ -723,7 +723,7 @@ int safe_prctl(const char *file, const int lineno,\n \t\ttst_brk_(file, lineno, TBROK | TERRNO,\n \t\t\t\"prctl(%d, %lu, %lu, %lu, %lu)\",\n \t\t\toption, arg2, arg3, arg4, arg5);\n-\t} else if (rval < 0) {\n+\t} else if (rval < -1) {\n \t\ttst_brk_(file, lineno, TBROK | TERRNO,\n \t\t\t\"Invalid prctl(%d, %lu, %lu, %lu, %lu) return value %d\",\n \t\t\toption, arg2, arg3, arg4, arg5, rval);\n@@ -746,7 +746,7 @@ ssize_t safe_readv(const char *file, const int lineno, char len_strict,\n \tif (rval == -1 || (len_strict && rval != nbyte)) {\n \t\ttst_brk_(file, lineno, TBROK | TERRNO,\n \t\t\t\"readv(%d,%p,%d) failed\", fildes, iov, iovcnt);\n-\t} else if (rval < 0) {\n+\t} else if (rval < -1) {\n \t\ttst_brk_(file, lineno, TBROK | TERRNO,\n \t\t\t\"Invalid readv(%d,%p,%d) return value %zd\",\n \t\t\tfildes, iov, iovcnt, rval);\n@@ -788,7 +788,7 @@ ssize_t safe_writev(const char *file, const int lineno, char len_strict,\n \tif (rval == -1 || (len_strict && rval != nbyte)) {\n \t\ttst_brk_(file, lineno, TBROK | TERRNO,\n \t\t\t\"writev(%d,%p,%d) failed\", fildes, iov, iovcnt);\n-\t} else if (rval < 0) {\n+\t} else if (rval < -1) {\n \t\ttst_brk_(file, lineno, TBROK | TERRNO,\n \t\t\t\"Invalid writev(%d,%p,%d) return value %zd\",\n \t\t\tfildes, iov, iovcnt, rval);\ndiff --git a/lib/tst_safe_sysv_ipc.c b/lib/tst_safe_sysv_ipc.c\nindex a196fc9ce4..4a16a86e12 100644\n--- a/lib/tst_safe_sysv_ipc.c\n+++ b/lib/tst_safe_sysv_ipc.c\n@@ -70,7 +70,7 @@ int safe_msgget(const char *file, const int lineno, key_t key, int msgflg)\n \tif (rval == -1) {\n \t\ttst_brk_(file, lineno, TBROK | TERRNO, \"msgget(%i, %x) failed\",\n \t\t\t(int)key, msgflg);\n-\t} else if (rval < 0) {\n+\t} else if (rval < -1) {\n \t\ttst_brk_(file, lineno, TBROK | TERRNO,\n \t\t\t\"Invalid msgget(%i, %x) return value %d\", (int)key,\n \t\t\tmsgflg, rval);\n@@ -110,7 +110,7 @@ ssize_t safe_msgrcv(const char *file, const int lineno, int msqid, void *msgp,\n \t\ttst_brk_(file, lineno, TBROK | TERRNO,\n \t\t\t\"msgrcv(%i, %p, %zu, %li, %x) failed\",\n \t\t\tmsqid, msgp, msgsz, msgtyp, msgflg);\n-\t} else if (rval < 0) {\n+\t} else if (rval < -1) {\n \t\ttst_brk_(file, lineno, TBROK | TERRNO,\n \t\t\t\"Invalid msgrcv(%i, %p, %zu, %li, %x) return value %ld\",\n \t\t\tmsqid, msgp, msgsz, msgtyp, msgflg, rval);\n@@ -148,7 +148,7 @@ int safe_shmget(const char *file, const int lineno, key_t key, size_t size,\n \tif (rval == -1) {\n \t\ttst_brk_(file, lineno, TBROK | TERRNO,\n \t\t\t\"shmget(%i, %zu, %x) failed\", (int)key, size, shmflg);\n-\t} else if (rval < 0) {\n+\t} else if (rval < -1) {\n \t\ttst_brk_(file, lineno, TBROK | TERRNO,\n \t\t\t\"Invalid shmget(%i, %zu, %x) return value %d\",\n \t\t\t(int)key, size, shmflg, rval);\n@@ -218,7 +218,7 @@ int safe_semget(const char *file, const int lineno, key_t key, int nsems,\n \tif (rval == -1) {\n \t\ttst_brk_(file, lineno, TBROK | TERRNO,\n \t\t\t\"semget(%i, %i, %x) failed\", (int)key, nsems, semflg);\n-\t} else if (rval < 0) {\n+\t} else if (rval < -1) {\n \t\ttst_brk_(file, lineno, TBROK | TERRNO,\n \t\t\t\"Invalid semget(%i, %i, %x) return value %d\",\n \t\t\t(int)key, nsems, semflg, rval);\n@@ -272,7 +272,7 @@ int safe_semop(const char *file, const int lineno, int semid, struct sembuf *sop\n \tif (rval == -1) {\n \t\ttst_brk_(file, lineno, TBROK | TERRNO,\n \t\t\t\"semop(%d, %p, %zu) failed\", semid, sops, nsops);\n-\t} else if (rval < 0) {\n+\t} else if (rval < -1) {\n \t\ttst_brk_(file, lineno, TBROK | TERRNO,\n \t\t\t\"Invalid semop(%d, %p, %zu) return value %d\",\n \t\t\tsemid, sops, nsops, rval);\ndiff --git a/lib/tst_safe_timerfd.c b/lib/tst_safe_timerfd.c\nindex d31f6e35e5..c08b468fce 100644\n--- a/lib/tst_safe_timerfd.c\n+++ b/lib/tst_safe_timerfd.c\n@@ -21,7 +21,7 @@ int safe_timerfd_create(const char *file, const int lineno,\n \tif (fd == -1) {\n \t\ttst_brk_(file, lineno, TTYPE | TERRNO,\n \t\t\t\"timerfd_create(%s) failed\", tst_clock_name(clockid));\n-\t} else if (fd < 0) {\n+\t} else if (fd < -1) {\n \t\ttst_brk_(file, lineno, TBROK | TERRNO,\n \t\t\t\"Invalid timerfd_create(%s) return value %d\",\n \t\t\ttst_clock_name(clockid), fd);\ndiff --git a/lib/tst_security.c b/lib/tst_security.c\nindex 00be4d72e2..b25605377c 100644\n--- a/lib/tst_security.c\n+++ b/lib/tst_security.c\n@@ -122,7 +122,7 @@ int tst_secureboot_enabled(void)\n \t\ttst_res(TINFO | TERRNO,\n \t\t\t\"Cannot open SecureBoot file\");\n \t\treturn -1;\n-\t} else if (fd < 0) {\n+\t} else if (fd < -1) {\n \t\ttst_brk(TBROK | TERRNO, \"Invalid open() return value %d\", fd);\n \t\treturn -1;\n \t}\n","prefixes":["2/2"]}