CVE-2021-47406
Publication date 21 May 2024
Last updated 5 August 2024
Ubuntu priority
In the Linux kernel, the following vulnerability has been resolved: ext4: add error checking to ext4_ext_replay_set_iblocks() If the call to ext4_map_blocks() fails due to an corrupted file system, ext4_ext_replay_set_iblocks() can get stuck in an infinite loop. This could be reproduced by running generic/526 with a file system that has inline_data and fast_commit enabled. The system will repeatedly log to the console: EXT4-fs warning (device dm-3): ext4_block_to_path:105: block 1074800922 > max in inode 131076 and the stack that it gets stuck in is: ext4_block_to_path+0xe3/0x130 ext4_ind_map_blocks+0x93/0x690 ext4_map_blocks+0x100/0x660 skip_hole+0x47/0x70 ext4_ext_replay_set_iblocks+0x223/0x440 ext4_fc_replay_inode+0x29e/0x3b0 ext4_fc_replay+0x278/0x550 do_one_pass+0x646/0xc10 jbd2_journal_recover+0x14a/0x270 jbd2_journal_load+0xc4/0x150 ext4_load_journal+0x1f3/0x490 ext4_fill_super+0x22d4/0x2c00 With this patch, generic/526 still fails, but system is no longer locking up in a tight loop. It's likely the root casue is that fast_commit replay is corrupting file systems with inline_data, and we probably need to add better error handling in the fast commit replay code path beyond what is done here, which essentially just breaks the infinite loop without reporting the to the higher levels of the code.
Status
Package | Ubuntu Release | Status |
---|---|---|
linux | 24.04 LTS noble |
Not affected
|
22.04 LTS jammy |
Not affected
|
|
20.04 LTS focal |
Not affected
|
|
18.04 LTS bionic |
Not affected
|
|
16.04 LTS xenial |
Not affected
|
|
14.04 LTS trusty |
Not affected
|
|
linux-allwinner-5.19 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Ignored end of kernel support | |
20.04 LTS focal | Not in release | |
linux-aws | 24.04 LTS noble |
Not affected
|
22.04 LTS jammy |
Not affected
|
|
20.04 LTS focal |
Not affected
|
|
18.04 LTS bionic |
Not affected
|
|
16.04 LTS xenial |
Not affected
|
|
14.04 LTS trusty |
Not affected
|
|
linux-aws-5.0 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal | Not in release | |
18.04 LTS bionic | Ignored superseded by linux-aws-5.3 | |
linux-aws-5.11 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal | Ignored superseded by linux-aws-5.13 | |
linux-aws-5.13 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal | Ignored superseded by linux-aws-5.15 | |
linux-aws-5.15 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal |
Not affected
|
|
linux-aws-5.19 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Ignored superseded by linux-aws-6.2 | |
20.04 LTS focal | Not in release | |
linux-aws-5.3 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal | Not in release | |
18.04 LTS bionic | Ignored superseded by linux-aws-5.4 | |
linux-aws-5.4 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal | Not in release | |
18.04 LTS bionic |
Not affected
|
|
linux-aws-5.8 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal | Ignored superseded by linux-aws-5.11 | |
linux-aws-6.2 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Ignored superseded by linux-aws-6.5 | |
20.04 LTS focal | Not in release | |
linux-aws-6.5 | 24.04 LTS noble | Not in release |
22.04 LTS jammy |
Not affected
|
|
20.04 LTS focal | Not in release | |
linux-aws-fips | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal | Not in release | |
linux-aws-hwe | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal | Not in release | |
16.04 LTS xenial |
Not affected
|
|
linux-azure | 24.04 LTS noble |
Not affected
|
22.04 LTS jammy |
Not affected
|
|
20.04 LTS focal |
Not affected
|
|
18.04 LTS bionic | Ignored superseded by linux-azure-5.3 | |
16.04 LTS xenial |
Not affected
|
|
14.04 LTS trusty |
Not affected
|
|
linux-azure-4.15 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal | Not in release | |
18.04 LTS bionic |
Not affected
|
|
linux-azure-5.11 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal | Ignored superseded by linux-azure-5.13 | |
linux-azure-5.13 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal | Ignored superseded by linux-azure-5.15 | |
linux-azure-5.15 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal |
Not affected
|
|
linux-azure-5.19 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Ignored superseded by linux-azure-6.2 | |
20.04 LTS focal | Not in release | |
linux-azure-5.3 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal | Not in release | |
18.04 LTS bionic | Ignored superseded by linux-azure-5.4 | |
linux-azure-5.4 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal | Not in release | |
18.04 LTS bionic |
Not affected
|
|
linux-azure-5.8 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal | Ignored superseded by linux-azure-5.11 | |
linux-azure-6.2 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Ignored superseded by linux-azure-6.5 | |
20.04 LTS focal | Not in release | |
linux-azure-6.5 | 24.04 LTS noble | Not in release |
22.04 LTS jammy |
Not affected
|
|
20.04 LTS focal | Not in release | |
linux-azure-edge | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal | Not in release | |
18.04 LTS bionic | Ignored superseded by linux-azure-5.3 | |
linux-azure-fde | 24.04 LTS noble | Not in release |
22.04 LTS jammy |
Not affected
|
|
20.04 LTS focal | Ignored superseded by linux-azure-fde-5.15 | |
linux-azure-fde-5.15 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal |
Not affected
|
|
linux-azure-fde-5.19 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Ignored superseded by linux-azure-fde-6.2 | |
20.04 LTS focal | Not in release | |
linux-azure-fde-6.2 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Ignored replaced by linux-azure-6.5 | |
20.04 LTS focal | Not in release | |
linux-azure-fips | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal | Not in release | |
linux-bluefield | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal |
Not affected
|
|
linux-fips | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal | Not in release | |
linux-gcp | 24.04 LTS noble |
Not affected
|
22.04 LTS jammy |
Not affected
|
|
20.04 LTS focal |
Not affected
|
|
18.04 LTS bionic | Ignored superseded by linux-gcp-5.3 | |
16.04 LTS xenial |
Not affected
|
|
linux-gcp-4.15 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal | Not in release | |
18.04 LTS bionic |
Not affected
|
|
linux-gcp-5.11 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal | Ignored superseded by linux-gcp-5.13 | |
linux-gcp-5.13 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal | Ignored superseded by linux-gcp-5.15 | |
linux-gcp-5.15 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal |
Not affected
|
|
linux-gcp-5.19 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Ignored superseded by linux-gcp-6.2 | |
20.04 LTS focal | Not in release | |
linux-gcp-5.3 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal | Not in release | |
18.04 LTS bionic | Ignored superseded by linux-gcp-5.4 | |
linux-gcp-5.4 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal | Not in release | |
18.04 LTS bionic |
Not affected
|
|
linux-gcp-5.8 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal | Ignored superseded by linux-gcp-5.11 | |
linux-gcp-6.2 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Ignored superseded by linux-gcp-6.5 | |
20.04 LTS focal | Not in release | |
linux-gcp-6.5 | 24.04 LTS noble | Not in release |
22.04 LTS jammy |
Not affected
|
|
20.04 LTS focal | Not in release | |
linux-gcp-fips | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal | Not in release | |
linux-gke | 24.04 LTS noble |
Not affected
|
22.04 LTS jammy |
Not affected
|
|
20.04 LTS focal | Ignored end of kernel support | |
linux-gke-4.15 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal | Not in release | |
18.04 LTS bionic | Ignored superseded by linux-gke-5.0 | |
linux-gke-5.15 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal | Ignored end of kernel support | |
linux-gke-5.4 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal | Not in release | |
18.04 LTS bionic | Ignored end of kernel support | |
linux-gkeop | 24.04 LTS noble | Not in release |
22.04 LTS jammy |
Not affected
|
|
20.04 LTS focal |
Not affected
|
|
linux-gkeop-5.15 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal |
Not affected
|
|
linux-gkeop-5.4 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal | Not in release | |
18.04 LTS bionic | Ignored end of kernel support | |
linux-hwe | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal | Not in release | |
18.04 LTS bionic | Ignored replaced by linux-hwe-5.4 | |
16.04 LTS xenial |
Not affected
|
|
linux-hwe-5.11 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal | Ignored superseded by linux-hwe-5.13 | |
linux-hwe-5.13 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal | Ignored superseded by linux-hwe-5.15 | |
linux-hwe-5.15 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal |
Not affected
|
|
linux-hwe-5.19 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Ignored superseded by linux-hwe-6.2 | |
20.04 LTS focal | Not in release | |
linux-hwe-5.4 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal | Not in release | |
18.04 LTS bionic |
Not affected
|
|
linux-hwe-5.8 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal | Ignored superseded by linux-hwe-5.11 | |
linux-hwe-6.2 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Ignored superseded by linux-hwe-6.5 | |
20.04 LTS focal | Not in release | |
linux-hwe-6.5 | 24.04 LTS noble | Not in release |
22.04 LTS jammy |
Not affected
|
|
20.04 LTS focal | Not in release | |
linux-hwe-edge | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal | Not in release | |
18.04 LTS bionic | Ignored superseded by linux-hwe-5.4 | |
16.04 LTS xenial | Ignored superseded by linux-hwe | |
linux-ibm | 24.04 LTS noble |
Not affected
|
22.04 LTS jammy |
Not affected
|
|
20.04 LTS focal |
Not affected
|
|
linux-ibm-5.15 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal |
Not affected
|
|
linux-ibm-5.4 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal | Not in release | |
18.04 LTS bionic |
Not affected
|
|
linux-intel | 24.04 LTS noble |
Not affected
|
22.04 LTS jammy | Not in release | |
20.04 LTS focal | Not in release | |
18.04 LTS bionic | Not in release | |
16.04 LTS xenial | Not in release | |
14.04 LTS trusty | Not in release | |
linux-intel-5.13 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal | Ignored end of kernel support | |
linux-intel-iotg | 24.04 LTS noble | Not in release |
22.04 LTS jammy |
Not affected
|
|
20.04 LTS focal | Not in release | |
linux-intel-iotg-5.15 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal |
Not affected
|
|
linux-iot | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal |
Not affected
|
|
linux-kvm | 24.04 LTS noble | Not in release |
22.04 LTS jammy |
Not affected
|
|
20.04 LTS focal |
Not affected
|
|
18.04 LTS bionic |
Not affected
|
|
16.04 LTS xenial |
Not affected
|
|
linux-laptop | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal | Not in release | |
linux-lowlatency | 24.04 LTS noble |
Not affected
|
22.04 LTS jammy |
Not affected
|
|
20.04 LTS focal | Not in release | |
linux-lowlatency-hwe-5.15 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal |
Not affected
|
|
linux-lowlatency-hwe-5.19 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Ignored superseded by linux-lowlatency-hwe-6.2 | |
20.04 LTS focal | Not in release | |
linux-lowlatency-hwe-6.2 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Ignored superseded by linux-lowlatency-hwe-6.5 | |
20.04 LTS focal | Not in release | |
linux-lowlatency-hwe-6.5 | 24.04 LTS noble | Not in release |
22.04 LTS jammy |
Not affected
|
|
20.04 LTS focal | Not in release | |
linux-lts-xenial | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal | Not in release | |
14.04 LTS trusty |
Not affected
|
|
linux-nvidia | 24.04 LTS noble |
Not affected
|
22.04 LTS jammy |
Not affected
|
|
20.04 LTS focal | Not in release | |
linux-nvidia-6.2 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Ignored superseded by linux-nvidia-6.5 | |
20.04 LTS focal | Not in release | |
linux-nvidia-6.5 | 24.04 LTS noble | Not in release |
22.04 LTS jammy |
Not affected
|
|
20.04 LTS focal | Not in release | |
linux-nvidia-6.8 | 24.04 LTS noble | Not in release |
22.04 LTS jammy |
Not affected
|
|
20.04 LTS focal | Not in release | |
18.04 LTS bionic | Not in release | |
16.04 LTS xenial | Not in release | |
14.04 LTS trusty | Not in release | |
linux-nvidia-lowlatency | 24.04 LTS noble |
Not affected
|
22.04 LTS jammy | Not in release | |
20.04 LTS focal | Not in release | |
18.04 LTS bionic | Not in release | |
16.04 LTS xenial | Not in release | |
14.04 LTS trusty | Not in release | |
linux-oem | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal | Not in release | |
18.04 LTS bionic | Ignored replaced by linux-hwe-5.4 | |
linux-oem-5.10 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal | Ignored superseded by linux-oem-5.13 | |
linux-oem-5.13 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal | Ignored superseded by linux-oem-5.14 | |
linux-oem-5.14 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal | Ignored replaced by linux-hwe-5.15 | |
linux-oem-5.17 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Ignored superseded by linux-oem-6.1 | |
20.04 LTS focal | Not in release | |
linux-oem-5.6 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal | Ignored superseded by linux-oem-5.10 | |
linux-oem-6.0 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Ignored superseded by linux-oem-6.1 | |
20.04 LTS focal | Not in release | |
linux-oem-6.1 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Ignored superseded by linux-oem-6.5 | |
20.04 LTS focal | Not in release | |
linux-oem-6.5 | 24.04 LTS noble | Not in release |
22.04 LTS jammy |
Not affected
|
|
20.04 LTS focal | Not in release | |
linux-oem-6.8 | 24.04 LTS noble |
Not affected
|
22.04 LTS jammy | Not in release | |
20.04 LTS focal | Not in release | |
18.04 LTS bionic | Not in release | |
16.04 LTS xenial | Not in release | |
14.04 LTS trusty | Not in release | |
linux-oracle | 24.04 LTS noble |
Not affected
|
22.04 LTS jammy |
Not affected
|
|
20.04 LTS focal |
Not affected
|
|
18.04 LTS bionic |
Not affected
|
|
16.04 LTS xenial |
Not affected
|
|
linux-oracle-5.0 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal | Not in release | |
18.04 LTS bionic | Ignored superseded by linux-oracle-5.3 | |
linux-oracle-5.11 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal | Ignored superseded by linux-oracle-5.13 | |
linux-oracle-5.13 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal | Ignored superseded by linux-oracle-5.15 | |
linux-oracle-5.15 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal |
Not affected
|
|
linux-oracle-5.3 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal | Not in release | |
18.04 LTS bionic | Ignored superseded by linux-oracle-5.4 | |
linux-oracle-5.4 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal | Not in release | |
18.04 LTS bionic |
Not affected
|
|
linux-oracle-5.8 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal | Ignored superseded by linux-oracle-5.11 | |
linux-oracle-6.5 | 24.04 LTS noble | Not in release |
22.04 LTS jammy |
Not affected
|
|
20.04 LTS focal | Not in release | |
linux-raspi | 24.04 LTS noble |
Not affected
|
22.04 LTS jammy |
Not affected
|
|
20.04 LTS focal |
Not affected
|
|
linux-raspi-5.4 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal | Not in release | |
18.04 LTS bionic |
Not affected
|
|
linux-raspi2 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal | Ignored replaced by linux-raspi | |
linux-riscv | 24.04 LTS noble |
Not affected
|
22.04 LTS jammy | Ignored end of kernel support | |
20.04 LTS focal | Ignored superseded by linux-riscv-5.8 | |
linux-riscv-5.11 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal | Ignored superseded by linux-riscv-5.13 | |
linux-riscv-5.15 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal |
Not affected
|
|
linux-riscv-5.19 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Ignored end of kernel support | |
20.04 LTS focal | Not in release | |
linux-riscv-5.8 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal | Ignored superseded by linux-riscv-5.11 | |
linux-riscv-6.5 | 24.04 LTS noble | Not in release |
22.04 LTS jammy |
Not affected
|
|
20.04 LTS focal | Not in release | |
linux-starfive | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Not in release | |
20.04 LTS focal | Not in release | |
linux-starfive-5.19 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Ignored end of kernel support | |
20.04 LTS focal | Not in release | |
linux-starfive-6.2 | 24.04 LTS noble | Not in release |
22.04 LTS jammy | Ignored superseded by linux-starfive-6.5 | |
20.04 LTS focal | Not in release | |
linux-starfive-6.5 | 24.04 LTS noble | Not in release |
22.04 LTS jammy |
Not affected
|
|
20.04 LTS focal | Not in release | |
linux-xilinx-zynqmp | 24.04 LTS noble | Not in release |
22.04 LTS jammy |
Not affected
|
|
20.04 LTS focal |
Not affected
|
References
Other references
- https://www.cve.org/CVERecord?id=CVE-2021-47406
- https://git.kernel.org/linus/1fd95c05d8f742abfe906620780aee4dbe1a2db0 (5.15-rc4)
- https://git.kernel.org/stable/c/a63474dbf692dd09b50fed592bc41f6de5f102fc
- https://git.kernel.org/stable/c/27e10c5d31ff1d222c7f797f1ee96d422859ba67
- https://git.kernel.org/stable/c/1fd95c05d8f742abfe906620780aee4dbe1a2db0