Andrew Chow
93999a5fbe
Merge bitcoin/bitcoin#25642 : Don't wrap around when deriving an extended key at a too large depth
...
fb9faffae3 extended keys: fail to derive too large depth instead of wrapping around (Antoine Poinsot)
8dc6670ce1 descriptor: don't assert success of extended key derivation (Antoine Poinsot)
50cfc9e761 (pubk)key: mark Derive() as nodiscard (Antoine Poinsot)
0ca258a5ac descriptor: never ignore the return value when deriving an extended key (Antoine Poinsot)
d3599c22bd spkman: don't ignore the return value when deriving an extended key (Antoine Poinsot)
Pull request description:
We would previously silently wrap the derived child's depth back to `0`. Instead, explicitly fail when trying to derive an impossible depth, and handle the error in callers.
An extended fuzzing corpus of `descriptor_parse` triggered this behaviour, which was reported by MarcoFalke.
Fixes #25751 .
ACKs for top commit:
achow101:
re-ACK fb9faffae3
instagibbs:
utACK fb9faffae3
Tree-SHA512: 9f75c23572ce847239bd15e5497df2960b6bd63c61ea72347959d968b5c4c9a4bfeee284e76bdcd7bacbf9eeb70feee85ffd3e316f353ca6eca30e93aafad343
2022-08-10 14:25:43 -04:00
..
2022-08-05 15:33:45 +02:00
2022-04-22 09:04:39 -05:00
2022-07-20 13:10:12 +01:00
2022-06-22 09:54:15 +02:00
2021-09-29 14:10:29 +02:00
2022-07-20 15:34:36 +02:00
2022-07-21 19:54:18 +02:00
2022-08-04 16:58:01 +01:00
2022-08-10 11:14:53 -03:00
2021-10-05 11:10:47 -04:00
2022-08-03 12:03:28 -04:00
2022-07-29 14:43:11 +01:00
2022-02-16 14:59:20 +02:00
2022-06-29 16:35:02 +01:00
2022-08-03 12:03:28 -04:00
2022-08-02 15:29:16 +02:00
2022-07-25 12:16:54 +02:00
2022-08-10 11:14:53 -03:00
2022-08-05 15:19:03 -04:00
2022-08-10 14:25:43 -04:00
2022-06-11 14:55:18 +01:00
2022-06-20 12:22:05 +01:00
2022-08-10 14:25:43 -04:00
2022-07-29 15:24:42 +02:00
2022-08-05 15:33:45 +02:00
2022-08-10 14:25:43 -04:00
2022-06-06 12:12:03 +02:00
2022-04-26 10:43:33 +01:00
2021-11-12 11:46:34 +01:00
2022-07-26 10:16:42 +01:00
2022-05-12 08:57:22 +02:00
2022-04-20 14:29:29 +01:00
2022-07-30 11:04:09 +02:00
2022-07-30 11:04:09 +02:00
2022-07-30 11:04:09 +02:00
2022-04-14 07:15:22 +02:00
2022-04-14 19:26:22 +02:00
2022-06-14 10:38:51 +02:00
2022-05-20 15:17:00 +02:00
2022-04-27 14:16:35 +02:00
2022-05-21 13:54:33 -05:00
2022-02-25 09:43:54 +01:00
2021-12-06 14:17:41 +13:00
2022-08-03 12:03:27 -04:00
2021-08-17 16:54:47 +08:00
2022-08-04 16:58:01 +01:00
2021-08-17 16:54:47 +08:00
2022-07-20 10:34:46 +01:00
2021-08-17 16:54:47 +08:00
2022-07-20 10:34:46 +01:00
2021-08-17 16:54:47 +08:00
2022-07-20 10:34:46 +01:00
2021-08-17 16:54:47 +08:00
2022-07-20 10:34:46 +01:00
2022-05-17 10:37:10 +01:00
2022-05-17 10:37:10 +01:00
2022-07-26 10:16:42 +01:00
2022-05-02 16:04:00 +09:00
2022-08-03 09:21:53 +02:00
2022-08-03 09:21:53 +02:00
2022-07-20 15:34:36 +02:00
2021-12-30 19:36:57 +02:00
2021-12-30 19:36:57 +02:00
2022-02-22 15:15:27 +01:00
2022-05-12 02:25:55 +10:00
2022-02-22 15:36:19 +00:00
2022-02-22 15:36:19 +00:00
2022-07-21 12:55:20 +03:00
2022-06-21 16:19:10 +02:00
2021-12-30 19:36:57 +02:00
2021-12-30 19:36:57 +02:00
2022-05-21 13:54:33 -05:00
2022-05-04 07:34:47 +02:00
2022-03-30 20:11:15 +01:00
2022-08-03 12:03:28 -04:00
2022-07-19 14:32:53 +02:00
2022-07-19 14:32:53 +02:00
2021-12-30 19:36:57 +02:00
2021-12-30 19:36:57 +02:00
2022-05-10 12:09:33 +10:00
2022-05-10 12:09:33 +10:00
2022-02-16 15:02:26 +02:00
2022-07-26 10:16:42 +01:00
2021-06-16 10:48:58 +02:00
2022-04-21 12:01:00 -05:00
2022-06-20 12:22:05 +01:00
2022-07-15 12:25:51 -04:00
2022-07-20 15:34:36 +02:00
2022-07-20 15:34:36 +02:00
2022-05-18 19:15:03 +02:00
2021-12-30 19:36:57 +02:00
2022-07-20 10:34:46 +01:00
2022-04-06 13:19:36 +01:00
2022-07-20 10:34:46 +01:00
2022-07-20 10:34:46 +01:00
2022-08-03 12:03:27 -04:00
2022-06-02 11:42:12 -04:00
2021-12-30 19:36:57 +02:00
2021-12-30 19:36:57 +02:00
2022-08-04 11:32:26 +02:00
2022-08-04 11:32:25 +02:00
2022-06-02 22:30:30 +08:00
2022-06-08 14:02:54 +02:00
2022-08-10 13:36:33 +01:00
2022-08-10 13:36:33 +01:00
2022-04-26 16:25:38 -04:00
2022-06-23 15:33:01 +02:00
2021-10-21 09:37:30 +08:00
2022-02-28 16:59:56 +01:00
2022-06-14 16:55:22 +02:00
2022-04-11 16:56:34 -04:00
2022-07-15 12:26:00 -04:00
2022-04-11 16:56:34 -04:00
2022-08-10 13:36:33 +01:00
2021-10-11 20:46:25 +08:00
2022-07-20 10:34:46 +01:00
2021-12-30 19:36:57 +02:00
2021-12-30 19:36:57 +02:00
2021-12-30 19:36:57 +02:00
2022-08-05 09:03:33 +01:00
2022-07-14 14:50:44 +02:00
2022-05-18 19:15:03 +02:00
2021-12-30 19:36:57 +02:00
2022-07-30 11:04:09 +02:00
2022-07-20 10:34:46 +01:00
2022-05-17 17:18:58 +01:00
2022-07-20 10:34:46 +01:00
2022-07-20 10:34:46 +01:00
2022-07-20 10:34:46 +01:00
2022-04-25 15:09:14 +02:00
2022-04-20 14:35:53 +01:00
2022-06-14 10:38:51 +02:00
2021-12-30 19:36:57 +02:00
2022-05-21 13:54:33 -05:00
2022-05-16 16:25:47 +02:00
2021-12-30 19:36:57 +02:00
2022-07-26 11:06:10 +02:00
2022-06-27 16:47:48 -04:00
2022-07-25 18:45:57 +02:00
2022-08-10 14:25:43 -04:00
2022-08-04 11:32:25 +02:00
2022-07-20 10:34:46 +01:00
2022-07-13 15:21:12 +02:00
2022-07-20 10:34:46 +01:00
2021-12-30 19:36:57 +02:00
2022-08-05 10:28:11 -03:00
2022-03-10 12:01:53 +01:00
2022-05-17 17:18:58 +01:00
2022-05-12 02:25:55 +10:00
2022-07-26 11:05:04 +02:00
2022-06-14 10:38:51 +02:00
2021-12-30 19:36:57 +02:00
2021-12-30 19:36:57 +02:00
2021-12-30 19:36:57 +02:00
2022-04-26 09:41:45 +01:00
2022-06-29 10:31:53 +02:00
2021-12-30 19:36:57 +02:00
2022-05-21 01:23:23 +10:00
2022-07-13 15:20:49 +02:00
2022-07-13 15:20:49 +02:00
2022-06-14 10:38:51 +02:00
2022-07-30 11:04:09 +02:00
2021-07-05 08:59:38 +03:00
2022-07-20 10:34:46 +01:00
2022-03-15 01:33:52 +00:00
2022-07-22 12:45:07 +02:00
2022-07-19 14:12:33 +02:00
2022-08-02 15:29:16 +02:00
2022-08-02 15:29:16 +02:00
2022-07-28 14:39:45 +08:00
2022-07-28 14:39:45 +08:00
2021-12-30 19:36:57 +02:00
2022-01-02 11:40:31 +01:00
2022-08-04 16:48:14 +01:00
2022-08-09 11:51:55 +01:00
2022-05-21 13:54:33 -05:00
2022-05-09 18:35:44 +02:00
2022-05-05 15:55:44 +02:00
2022-05-12 02:25:55 +10:00
2022-01-06 22:14:16 -05:00
2022-05-21 01:23:23 +10:00
2021-12-30 19:36:57 +02:00