noctuum
1b15b7c518
Report a failed write in log.vmmap.dump
...
The dump is only flushed at fclose, whose result was discarded.
2026-09-19 10:11:23 +02:00
noctuum
b1be898ba1
Reject an over-long or empty object_storage key
...
key_type stores a key of key_size or longer as the empty key.
2026-09-18 16:54:48 +02:00
Jari Sundell
bd00b5f6fe
Use explicit device name binding rather than a custom syntax.
2026-09-18 23:19:43 +09:00
noctuum
b34eb1e895
Own the download factory until commit
...
A malformed data uri threw before commit, and nothing deleted it.
2026-09-18 11:24:30 +02:00
noctuum
b857acd081
Increment d.state_counter on pause
...
The start path increments it; the pause path assigned it to itself.
2026-09-18 11:05:31 +02:00
noctuum
988aca1281
Release the scgi task buffer on close
...
clear() keeps the capacity, and the task is pooled until exit.
2026-09-18 10:53:58 +02:00
noctuum
378c7ee854
Reject a throttle rate that does not parse
...
A discarded parse result left the rate at zero, which is unlimited.
2026-09-18 10:37:14 +02:00
noctuum
da9606bfae
Take ownership of the magnet metadata object
...
Nothing freed the bencode map the meta download built.
2026-09-18 10:17:28 +02:00
noctuum
8423803b6e
Check the flush on the dht cache and history
...
good() ran before close(), so a failed write replaced the file.
2026-09-17 16:13:55 +02:00
noctuum
c1ce2febf0
Reject an over-long line instead of truncating
...
getline sets failbit, which both loops read as end of input.
2026-09-17 11:33:44 +02:00
noctuum
5ebb7bd151
Call the target deleter in the tinyxml2 backend
...
A tracker target allocates, and the deleter went out of scope unused.
2026-09-17 10:33:45 +02:00
noctuum
50f0cad0c6
Release the xmlrpc array item on a throw
...
xmlrpc_to_target throws for an invalid target, skipping the DECREF.
2026-09-17 10:14:21 +02:00
noctuum
3717649bb3
Guard the value iterator in method.insert.list
...
The list branch dereferenced end() when no value was given.
2026-09-17 09:54:14 +02:00
noctuum
c32b56e9d8
Do not reschedule a deleted scheduler item
...
schedule.remove from the scheduled command deletes the item.
2026-09-16 11:37:19 +02:00
noctuum
de54a4c2ad
Clamp the negative width in wstring_width
...
A narrow terminal makes the file list width go below zero.
2026-09-16 11:18:54 +02:00
noctuum
26fdca8f4d
Use empty_visible in the view focus movers
...
empty() counts filtered entries, so size() - 1 underflows.
2026-09-16 10:57:25 +02:00
noctuum
00bcdaee23
Check the info-hash target in p.call_target
...
Without it an unknown info-hash segfaults the process.
2026-09-16 10:29:52 +02:00
rakshasa
3787dbe7f3
Tagged release 0.16.23.
v0.16.23
2026-09-15 14:49:21 +02:00
noctuum
282c86597a
Fix a use after free in the xmlrpc-c index path
...
The string was freed before it was tested, and tmp was never released.
2026-09-14 11:32:11 +02:00
noctuum
c41e63248a
Check the flush and sync on session file writes
...
good() was checked before close(), where the data is actually flushed.
2026-09-14 11:10:12 +02:00
noctuum
641626029a
Fix a one byte write past address_copy
...
The index bound was the buffer size, not the last writable index.
2026-09-14 10:53:12 +02:00
noctuum
0c507c581f
Release the zlib deflate state in gzip_compress_to_vector.
...
deflateEnd was never called, leaking 168 kB per compressed response.
2026-09-13 10:43:16 +02:00
noctuum
af0b600b54
Add unit tests for ipv4_range_parse.
...
Covers single addresses, explicit ranges and the cidr mask boundaries.
2026-09-13 10:05:39 +02:00
noctuum
c984a69fd1
Fix cidr /32 ip filter entries covering everything above the address.
...
Shifting end_mask by the full type width is undefined behavior.
2026-09-13 10:05:39 +02:00
Jakob Breivik Grimstveit
20002ce937
Fix false invalid session error on empty URI
...
Avoid triggering 'Session data is invalid' when loading downloads with an empty URI.
2026-09-11 12:05:59 +02:00
rakshasa
3caa31113d
Bumped scgi max content length to 64mb.
2026-09-06 14:50:19 +02:00
Nicolas PARLANT
0373d227c1
add missing headers for libcxx-23
...
Signed-off-by: Nicolas PARLANT <nicolas.parlant@parhuet.fr >
2026-09-03 09:59:12 +02:00
rakshasa
a8be7e443a
Tagged release 0.16.22.
v0.16.22
2026-09-02 09:39:57 +02:00
aeiouaeiouaeiouaeiouaeiouaeiou
f327523a07
gzip.h: fix build with Clang <17
...
Signed-off-by: aeiouaeiouaeiouaeiouaeiouaeiou <aeioudev@outlook.com >
2026-08-30 11:18:25 +02:00
Jari Sundell
2804be2c9c
Optionally sanitize download and file names by replacing slash with underscore.
2026-08-29 18:31:16 +09:00
noctuum
21019fde41
Add the download to the stopped view when a hash check contradicts d.complete.
...
Setting d.state alone left it in the started view, where d.start cannot restore it.
2026-08-28 09:31:55 +02:00
noctuum
e4e858cc40
Stop the download in close_directly() rather than leaving the state behind.
...
It closed the files while d.state and the started view still called it running.
2026-08-28 09:31:55 +02:00
noctuum
60eb8f0383
Split the file closing in DownloadList::close_directly() into close_files().
...
Callers that only need the files released should not depend on how a stop behaves.
2026-08-28 09:31:55 +02:00
Jari Sundell
072cbae0c6
Expose system.files.close_idle for FileManager idle FD timeout by @j-c-m
2026-08-28 03:18:25 +09:00
xirvik
16bfaf2694
Reject an XMLRPC size limit above the SCGI content size limit.
2026-08-27 10:48:26 +02:00
xirvik
c8da93bd30
Warn that pieces.sync.timeout_safe.set is no longer supported.
2026-08-26 11:21:14 +02:00
xirvik
2cd3ca052d
Pass the gz flag to log.append_gz_file.
2026-08-26 10:54:22 +02:00
xirvik
8be1fcb3a4
Return m_use_fsyncdisk from SessionManager::use_fsyncdisk.
...
system.files.session.fdatasync always reported true even when disabled.
2026-08-26 10:32:12 +02:00
rakshasa
109a20c09c
Tagged release 0.16.21.
v0.16.21
2026-08-26 08:51:40 +02:00
xirvik
ac1b2685d5
Guard the value suffixes against negative overflow.
...
The k, m and g guards only checked the positive side, so -4611686018427387904K became 0.
2026-08-24 08:57:58 +02:00
xirvik
d7b2cfe4f2
Clamp the elapsed time conversion instead of overflowing.
...
convert.elapsed_time subtracted an unchecked value from the cached seconds.
2026-08-24 08:24:20 +02:00
xirvik
dcfbf82a38
Mark view.list and the system.time getters as untrusted safe.
...
Read-only getters a client needs to list views and make sense of timestamps.
2026-08-24 07:37:23 +02:00
xirvik
3ae91b6536
Check flag_public_rpc when dispatching jsonrpc calls.
...
Private commands and non-exported redirects were reachable over jsonrpc.
2026-08-19 19:11:53 +02:00
xirvik
af6d8a10ad
Add a timeout to scgi tasks.
...
A hundred connections sending a partial header held the whole task pool.
2026-08-18 12:25:58 +02:00
xirvik
9066afc063
Guard the unit multiplication in value commands against overflow.
...
The kb variants multiply the argument by 1024 without checking the range.
2026-08-18 11:58:47 +02:00
xirvik
a2fabb10de
Range check the socket allocation and size values.
...
int64 arguments were truncated into uint32 setters, so -1 became 4294967295.
2026-08-18 11:38:01 +02:00
xirvik
13e073d9ff
Reject division overflow in math.div and math.mod.
...
Dividing the smallest integer by -1 traps and takes the process with it.
2026-08-18 11:12:33 +02:00
xirvik
d73f245692
Add a depth limit to the command parser.
...
A million nested braces in one argument exhausted the main thread's stack.
2026-08-18 10:52:38 +02:00
xirvik
7db356cae4
Add a depth limit to json_to_object.
...
Deeply nested params recursed until the main thread's stack was exhausted.
2026-08-18 10:34:07 +02:00
Auska
8378c0a83a
Fix review: mark ipv4/ipv6 local_port safe, dedup port validation
...
- mark network.local_port.ipv4/ipv6 safe for untrusted RPC connections (mark_safe matches exact command keys).
- Replace duplicated multi-line port validation with a shared checked_local_port_value helper and single-line lambdas.
2026-08-17 11:29:50 +02:00