<feed xmlns='http://www.w3.org/2005/Atom'>
<title>cgi-io, branch master</title>
<subtitle>CGI utility for handling up/downloading of files etc.</subtitle>
<id>https://git.openwrt.org/project/cgi-io/atom?h=master</id>
<link rel='self' href='https://git.openwrt.org/project/cgi-io/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/cgi-io/'/>
<updated>2025-12-11T11:15:13Z</updated>
<entry>
<title>main: Add `stderr` option for cgi-exec to redirect stderr to stdout</title>
<updated>2025-12-11T11:15:13Z</updated>
<author>
<name>Richard Yu</name>
</author>
<published>2025-09-01T14:27:33Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/cgi-io/commit/?id=658b14bda2a0fb617fa456401daee61aae42c805'/>
<id>urn:sha1:658b14bda2a0fb617fa456401daee61aae42c805</id>
<content type='text'>
This feature is used by openwrt/luci#7920
It allows cgi processes to follow real-time output sent to stderr.

Closes #2

Signed-off-by: Richard Yu &lt;yurichard3839@gmail.com&gt;
Signed-off-by: Paul Donald &lt;newtwen+github@gmail.com&gt;
Link: https://github.com/openwrt/cgi-io/pull/3
Signed-off-by: Robert Marko &lt;robimarko@gmail.com&gt;
</content>
</entry>
<entry>
<title>build: require CMake &gt;= 3.10 due to dropped legacy support</title>
<updated>2025-10-04T11:44:48Z</updated>
<author>
<name>Hauke Mehrtens</name>
</author>
<published>2025-10-04T11:44:48Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/cgi-io/commit/?id=d4b9fb115c3d9fecb2ebde2fa7b4dd88aa856dff'/>
<id>urn:sha1:d4b9fb115c3d9fecb2ebde2fa7b4dd88aa856dff</id>
<content type='text'>
CMake version 4.0 and later require minimum version of 3.5 or later.
Update to minimum version 3.10 which is the last not deprecated minimum
version.

CMake 3.10 was released in November 2017 and is included in Ubuntu 18.04.

Signed-off-by: Hauke Mehrtens &lt;hauke@hauke-m.de&gt;
</content>
</entry>
<entry>
<title>main: fix two one-byte overreads in header_value()</title>
<updated>2022-08-10T19:43:34Z</updated>
<author>
<name>Jo-Philipp Wich</name>
</author>
<published>2022-08-10T19:43:08Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/cgi-io/commit/?id=901b0f0463c9d16a8cf5b9ed37118d8484bc9176'/>
<id>urn:sha1:901b0f0463c9d16a8cf5b9ed37118d8484bc9176</id>
<content type='text'>
By passing specially crafted header values, the skip loops in the
header_value() function may override the input buffer by one byte
each.

Reported-by: Jinwei Dong &lt;jwdong2000@qq.com&gt;
Signed-off-by: Jo-Philipp Wich &lt;jo@mein.io&gt;
</content>
</entry>
<entry>
<title>Retry splice() syscall on EINTR</title>
<updated>2021-09-08T19:48:35Z</updated>
<author>
<name>Jo-Philipp Wich</name>
</author>
<published>2021-09-08T19:23:49Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/cgi-io/commit/?id=98cef9dda63623eff07bd574ad7c98ef282af18d'/>
<id>urn:sha1:98cef9dda63623eff07bd574ad7c98ef282af18d</id>
<content type='text'>
The invoked child process might end before the I/O loop finished outputting
all data. In such a case, the splice() call might fail with -1/EINTR.

Continue looping in such a case.

Signed-off-by: Jo-Philipp Wich &lt;jo@mein.io&gt;
</content>
</entry>
<entry>
<title>tests: add cram based unit tests</title>
<updated>2020-10-27T22:03:04Z</updated>
<author>
<name>Petr Štetiar</name>
</author>
<published>2020-10-12T12:06:11Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/cgi-io/commit/?id=ab4c3471b26179b6e1decfb6ca27c4a87df9a0a4'/>
<id>urn:sha1:ab4c3471b26179b6e1decfb6ca27c4a87df9a0a4</id>
<content type='text'>
For the start with cgi-exec testing.

Signed-off-by: Petr Štetiar &lt;ynezz@true.cz&gt;
</content>
</entry>
<entry>
<title>tests: add cgi-io built with clang sanitizers</title>
<updated>2020-10-27T22:03:04Z</updated>
<author>
<name>Petr Štetiar</name>
</author>
<published>2020-10-12T12:03:59Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/cgi-io/commit/?id=7b4e3241e1bd3ea123b12a7b4d1754af9e1b5442'/>
<id>urn:sha1:7b4e3241e1bd3ea123b12a7b4d1754af9e1b5442</id>
<content type='text'>
Will be used later for testing.

Signed-off-by: Petr Štetiar &lt;ynezz@true.cz&gt;
</content>
</entry>
<entry>
<title>Disable session ACLs during unit testing</title>
<updated>2020-10-27T22:03:04Z</updated>
<author>
<name>Petr Štetiar</name>
</author>
<published>2020-10-12T11:30:18Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/cgi-io/commit/?id=21831f45d16d0e95102f0a9ffea2dfbafc9da6ce'/>
<id>urn:sha1:21831f45d16d0e95102f0a9ffea2dfbafc9da6ce</id>
<content type='text'>
Otherwise we would need to setup ubus infrastructure etc.

Signed-off-by: Petr Štetiar &lt;ynezz@true.cz&gt;
</content>
</entry>
<entry>
<title>Add initial GitLab CI support</title>
<updated>2020-10-27T22:03:04Z</updated>
<author>
<name>Petr Štetiar</name>
</author>
<published>2020-10-11T12:12:12Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/cgi-io/commit/?id=2f525417b5dfa2daa3d0f0f56dd1e619be34af53'/>
<id>urn:sha1:2f525417b5dfa2daa3d0f0f56dd1e619be34af53</id>
<content type='text'>
Uses currently proof-of-concept openwrt-ci[1] in order to:

 * improve the quality of the codebase in various areas
 * decrease code review time and help merging contributions faster
 * get automagic feedback loop on various platforms and tools
   - out of tree build with OpenWrt SDK on following targets:
     * ath79-generic
     * imx6-generic
     * malta-be
     * mvebu-cortexa53
   - out of tree native build on x86/64 with GCC (versions 8, 9, 10) and Clang 10
   - out of tree native x86/64 static code analysis with cppcheck and
     scan-build from Clang 10

1. https://gitlab.com/ynezz/openwrt-ci/

Signed-off-by: Petr Štetiar &lt;ynezz@true.cz&gt;
</content>
</entry>
<entry>
<title>Add .gitignore</title>
<updated>2020-10-27T22:03:04Z</updated>
<author>
<name>Petr Štetiar</name>
</author>
<published>2020-10-11T12:08:42Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/cgi-io/commit/?id=57f1c4f18cb61f426e729dcac2a4f21a64f66010'/>
<id>urn:sha1:57f1c4f18cb61f426e729dcac2a4f21a64f66010</id>
<content type='text'>
And ignore the `build` dir used by CMake.

Signed-off-by: Petr Štetiar &lt;ynezz@true.cz&gt;
</content>
</entry>
<entry>
<title>Fix off-by-one in postdecode_fields</title>
<updated>2020-10-27T22:03:04Z</updated>
<author>
<name>Petr Štetiar</name>
</author>
<published>2020-10-11T11:57:10Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/cgi-io/commit/?id=09f9ac5066ee71f7cc1d5a6401dfa7f49d1dd677'/>
<id>urn:sha1:09f9ac5066ee71f7cc1d5a6401dfa7f49d1dd677</id>
<content type='text'>
Fixes following error found by fuzzer:

 ERROR: AddressSanitizer: SEGV on unknown address 0x60c000120000 (pc 0x00000054f64f bp 0x000000000008 sp 0x7ffe4fc2c120 T0)
 The signal is caused by a READ memory access.
    #0 0x54f64f in postdecode_fields cgi-io/util.c:93:7
    #1 0x54f382 in LLVMFuzzerTestOneInput cgi-io/tests/fuzz/test-fuzz.c:36:6

That is caused by reading 1 byte past the size of the buffer.

Signed-off-by: Petr Štetiar &lt;ynezz@true.cz&gt;
</content>
</entry>
</feed>
