Commit Graph

5533 Commits

Author SHA1 Message Date
stefanrueger
ff9cf35e8b Reorder sanity checks in jtag3_paged_load() and jtag3_paged_load_tpi() 2026-08-16 07:08:03 +02:00
stefanrueger
ba6662d226 Declare block_size where needed 2026-08-16 07:03:00 +02:00
stefanrueger
7b7265b542 Use mnemonic variable name 2026-08-16 07:01:34 +02:00
stefanrueger
5d58dc8527 Fix AVR memory buffer overrun 2026-08-15 18:43:12 +02:00
stefanrueger
4aa2c7dda1 Ensure header bytes are present before processing them 2026-08-15 17:41:16 +02:00
stefanrueger
094bdef8a7 Always clear buffers not only when -vvvvv 2026-08-15 02:29:04 +02:00
stefanrueger
f833cea7ba Use __func__ instead of string literal 2026-08-15 01:54:58 +02:00
stefanrueger
4226d78671 Shorten jtag3_paged_write_tpi() 2026-08-15 01:52:41 +02:00
stefanrueger
84428858dd Shorten jtag3_paged_write() 2026-08-15 01:44:02 +02:00
stefanrueger
05c5d46d4d Use mnemonic variable name 2026-08-15 01:40:29 +02:00
stefanrueger
dfcc4054de Zap unused receive buffer
... and ensure any potential pgm->fd.usb.max_xfer change during the
jtag3_edbg_recv_frame() call by any of the used functions won't overrun
the receive buffer.
2026-08-15 01:31:53 +02:00
stefanrueger
3405ed234c Fix potential buffer overrun
There is no guarantee that jtag3_edbg_recv_frame()'s

    rv = serial_recv(&pgm->fd, buf, pgm->fd.usb.max_xfer);

won't overrun the remaining buffer that buf points to as buf sweeps the
initial buffer within the do loop. While checks prevent buf pointing
beyond the initial generous allocation of USBDEV_MAX_XFER_3 bytes, above
call requires there be pgm->fd.usb.max_xfer more space available.

Fingers crossed pgm->fd.usb.max_xfer wont't be changed during the
jtag3_edbg_recv_frame() call by any of the used functions within.
2026-08-15 01:25:21 +02:00
stefanrueger
a2346cece3 Fix pmsg_trace() message 2026-08-15 00:25:52 +02:00
stefanrueger
7f10406663 Shorten jtag3_recv_frame() 2026-08-15 00:22:43 +02:00
stefanrueger
221ca8ef43 Fix buffer length curtailing
Thislen is the payload of the received data, which should not exceed the
buffer length minus 4 bytes header.
2026-08-14 23:48:51 +02:00
stefanrueger
979f0fadfc Harden usbhid_recv() and usbhid_send()
usbhid_send() now returns an error if a different number of bytes were
reported to be written than requested. usbhid_recv() now returns an error
if more bytes were reported to be received than requested (this should
never happen, though).

This commit also improves the error messaging.
2026-08-14 22:55:39 +02:00
stefanrueger
67d8fca0c4 Simplify usbdev_send() and usbdev_recv() 2026-08-14 22:08:36 +02:00
stefanrueger
f4e115b56f Harden jtag_xyz() functions further
One source for errors is the use of a free'd pointer. This commit sets to
NULL free'd pointers that *may* be available to the caller. Improper use
of these free'd pointer should then result in an exception or core dump
that ought to be easier to locate than otherwise.
2026-08-13 20:35:14 +02:00
stefanrueger
ed09d3510d Update NEWS 2026-08-12 20:56:09 +02:00
Stefan Rueger
d61d220d7c Merge pull request #2182 from stefanrueger/usb-set-configuration
Revert commit eb66125
2026-08-12 20:52:06 +02:00
Stefan Rueger
e4fc4609cb Merge pull request #2181 from stefanrueger/usr-config-windows
Harden `str_usrconfig()` and `str_sysconfig()`
2026-08-12 20:51:12 +02:00
stefanrueger
8cde7a2df6 Harden str_usrconfig() and str_sysconfig() 2026-08-12 20:29:00 +02:00
stefanrueger
98e973eb17 Revert commit eb66125
Apparently the reasoning behing commit eb66125 was flawed for certain MSVC
builds, see https://github.com/avrdudes/avrdude/issues/2175
2026-08-12 20:26:06 +02:00
stefanrueger
bf86b97b8f Update NEWS 2026-08-05 08:41:13 +02:00
Stefan Rueger
ac9a7b5785 Merge pull request #2177 from stefanrueger/harden-jtag3
Harden `jtag3_xyx()` functions
2026-08-05 08:37:58 +02:00
stefanrueger
a0bbc7629b Harden jtag3_xyx() functions 2026-08-04 20:41:24 +02:00
stefanrueger
b67e7c587b Update NEWS 2026-08-03 18:40:52 +02:00
Stefan Rueger
4facf49f52 Merge pull request #2174 from stefanrueger/trace_dump
Improve readability of `trace_buffer()`
2026-08-03 18:39:45 +02:00
Stefan Rueger
12f40e07cf Merge pull request #2173 from stefanrueger/modify
Enforce modify cannot be used in system config file
2026-08-03 18:38:27 +02:00
stefanrueger
69f1fcd516 Improve readability of trace_buffer() 2026-08-03 03:22:53 +02:00
stefanrueger
012ffa5474 Enforce modify cannot be used in system config file
The developer option `-p*/s` is routinely used for canonicalisation of the
system configuration file, as are the options `-p*/si` and `-p*/s` that
are used for programmatically injecting .atdf properties into the
`avrdude.conf` file.  These techniques interfere with the `modify`
operation that is only meant for last-resort changes of parts or
programmers in the per-user configuration file.
2026-08-03 02:52:38 +02:00
stefanrueger
23f4caed60 Update NEWS 2026-08-03 01:42:07 +02:00
Stefan Rueger
4f2b9b9f78 Merge pull request #2172 from stefanrueger/config-files
Simplify `main.c` and provide library functions
2026-08-03 01:40:52 +02:00
stefanrueger
44df31e442 Harden cfg_infile use 2026-08-01 21:12:04 +02:00
stefanrueger
63c10058bb Remove unnecessary realpath() in read_config() 2026-08-01 21:06:54 +02:00
stefanrueger
72e7c15d68 Move whereami.c library into libavrdude 2026-08-01 21:02:13 +02:00
stefanrueger
886f65e7d1 Move #include <whereami.h> 2026-08-01 20:59:38 +02:00
stefanrueger
d8e3fab4a7 Fix variable definition in switch statement 2026-08-01 20:56:01 +02:00
stefanrueger
abcd259020 Move variable declaration 2026-08-01 20:09:35 +02:00
stefanrueger
88ba549081 Add const where useful 2026-08-01 19:57:45 +02:00
stefanrueger
28870f45fc Reinstate info on showing udev rules on permission errors 2026-08-01 19:54:51 +02:00
stefanrueger
223ebcb02c Rename main static pgm to mpgm 2026-08-01 19:51:33 +02:00
stefanrueger
19fd6f2615 Simplify main flow 2026-08-01 19:11:57 +02:00
stefanrueger
e7b1f42794 Localise rc variable 2026-08-01 18:36:50 +02:00
stefanrueger
194ff8c07f Utilise str_progname() 2026-08-01 18:22:59 +02:00
stefanrueger
46a82a6417 Provide str_progname() 2026-08-01 18:22:14 +02:00
stefanrueger
090b90a672 Rename AVRPART *p to pt 2026-08-01 10:36:57 +02:00
stefanrueger
92b82b3f18 Initialise variables when declaring them 2026-08-01 10:23:24 +02:00
stefanrueger
c7d364ee33 Move variables into local context 2026-08-01 10:03:44 +02:00
stefanrueger
6351d314c4 Use str_sysconfig() and str_usrconfig() in main.c 2026-08-01 09:46:21 +02:00