<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);" class="elementToProof">
Recheck-request: rebase=main, github-robot, iol-sample-apps-testing, iol-compile-amd64-testing</div>
<div id="appendonsend"></div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> Sameer Vaze <svaze@qti.qualcomm.com><br>
<b>Sent:</b> Friday, October 24, 2025 12:47 PM<br>
<b>Cc:</b> dev@dpdk.org <dev@dpdk.org>; Sameer Vaze <svaze@qti.qualcomm.com><br>
<b>Subject:</b> [PATCH] app/compress-perf: fix coverity issue</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText">Removes possible assignment of a signed value<br>
to an unsigned parameter. Also makes dictionary<br>
an optional argument<br>
<br>
Signed-off-by: Sameer Vaze <svaze@qti.qualcomm.com><br>
---<br>
 .../comp_perf_options_parse.c                 |  2 +-<br>
 app/test-compress-perf/main.c                 | 19 +++++++++++++------<br>
 2 files changed, 14 insertions(+), 7 deletions(-)<br>
<br>
diff --git a/app/test-compress-perf/comp_perf_options_parse.c b/app/test-compress-perf/comp_perf_options_parse.c<br>
index 49197dc290..16d31c7e90 100644<br>
--- a/app/test-compress-perf/comp_perf_options_parse.c<br>
+++ b/app/test-compress-perf/comp_perf_options_parse.c<br>
@@ -660,7 +660,7 @@ static struct option lgopts[] = {<br>
         { CPERF_LEVEL, required_argument, 0, 0 },<br>
         { CPERF_WINDOW_SIZE, required_argument, 0, 0 },<br>
         { CPERF_EXTERNAL_MBUFS, 0, 0, 0 },<br>
-       { CPERF_DICTIONARY, required_argument, 0, 0 },<br>
+       { CPERF_DICTIONARY, optional_argument, 0, 0 },<br>
         { CPERF_CYCLECOUNT_DELAY_US, required_argument, 0, 0 },<br>
         { NULL, 0, 0, 0 }<br>
 };<br>
diff --git a/app/test-compress-perf/main.c b/app/test-compress-perf/main.c<br>
index 11b016069c..59af073f12 100644<br>
--- a/app/test-compress-perf/main.c<br>
+++ b/app/test-compress-perf/main.c<br>
@@ -355,16 +355,22 @@ comp_perf_dump_dictionary_data(struct comp_test_data *test_data)<br>
                 RTE_LOG(ERR, USER1, "Size of input could not be calculated\n");<br>
                 goto end;<br>
         }<br>
-       size_t actual_file_sz = ftell(f);<br>
+       long file_sz = ftell(f);<br>
         /* If extended input data size has not been set,<br>
          * input data size = file size<br>
          */<br>
 <br>
+       if (file_sz < 0) {<br>
+               RTE_LOG(ERR, USER1, "Actual file size could not be determined\n");<br>
+               goto end;<br>
+       }<br>
+<br>
+       size_t actual_file_sz = (size_t)file_sz;<br>
+<br>
         if (test_data->dictionary_data_sz == 0)<br>
                 test_data->dictionary_data_sz = actual_file_sz;<br>
 <br>
-       if (test_data->dictionary_data_sz <= 0 || actual_file_sz <= 0 ||<br>
-                       fseek(f, 0, SEEK_SET) != 0) {<br>
+       if (fseek(f, 0, SEEK_SET) != 0) {<br>
                 RTE_LOG(ERR, USER1, "Size of input could not be calculated\n");<br>
                 goto end;<br>
         }<br>
@@ -386,11 +392,15 @@ comp_perf_dump_dictionary_data(struct comp_test_data *test_data)<br>
 <br>
                 if (fread(data, data_to_read, 1, f) != 1) {<br>
                         RTE_LOG(ERR, USER1, "Input file could not be read\n");<br>
+                       if (test_data->dictionary_data)<br>
+                               rte_free(test_data->dictionary_data);<br>
                         goto end;<br>
                 }<br>
                 if (fseek(f, 0, SEEK_SET) != 0) {<br>
                         RTE_LOG(ERR, USER1,<br>
                                 "Size of input could not be calculated\n");<br>
+                       if (test_data->dictionary_data)<br>
+                               rte_free(test_data->dictionary_data);<br>
                         goto end;<br>
                 }<br>
                 remaining_data -= data_to_read;<br>
@@ -414,9 +424,6 @@ comp_perf_dump_dictionary_data(struct comp_test_data *test_data)<br>
         if (f)<br>
                 fclose(f);<br>
 <br>
-       if (test_data->dictionary_data)<br>
-               rte_free(test_data->dictionary_data);<br>
-<br>
         return ret;<br>
 }<br>
 <br>
-- <br>
2.31.1<br>
<br>
</div>
</span></font></div>
</body>
</html>