stable.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	patches@lists.linux.dev, Kun Hu <huk23@m.fudan.edu.cn>,
	Pavel Begunkov <asml.silence@gmail.com>,
	Jens Axboe <axboe@kernel.dk>
Subject: [PATCH 6.12 088/114] io_uring/sqpoll: fix sqpoll error handling races
Date: Mon, 30 Dec 2024 16:43:25 +0100	[thread overview]
Message-ID: <20241230154221.479925982@linuxfoundation.org> (raw)
In-Reply-To: <20241230154218.044787220@linuxfoundation.org>

6.12-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Pavel Begunkov <asml.silence@gmail.com>

commit e33ac68e5e21ec1292490dfe061e75c0dbdd3bd4 upstream.

BUG: KASAN: slab-use-after-free in __lock_acquire+0x370b/0x4a10 kernel/locking/lockdep.c:5089
Call Trace:
<TASK>
...
_raw_spin_lock_irqsave+0x3d/0x60 kernel/locking/spinlock.c:162
class_raw_spinlock_irqsave_constructor include/linux/spinlock.h:551 [inline]
try_to_wake_up+0xb5/0x23c0 kernel/sched/core.c:4205
io_sq_thread_park+0xac/0xe0 io_uring/sqpoll.c:55
io_sq_thread_finish+0x6b/0x310 io_uring/sqpoll.c:96
io_sq_offload_create+0x162/0x11d0 io_uring/sqpoll.c:497
io_uring_create io_uring/io_uring.c:3724 [inline]
io_uring_setup+0x1728/0x3230 io_uring/io_uring.c:3806
...

Kun Hu reports that the SQPOLL creating error path has UAF, which
happens if io_uring_alloc_task_context() fails and then io_sq_thread()
manages to run and complete before the rest of error handling code,
which means io_sq_thread_finish() is looking at already killed task.

Note that this is mostly theoretical, requiring fault injection on
the allocation side to trigger in practice.

Cc: stable@vger.kernel.org
Reported-by: Kun Hu <huk23@m.fudan.edu.cn>
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Link: https://lore.kernel.org/r/0f2f1aa5729332612bd01fe0f2f385fd1f06ce7c.1735231717.git.asml.silence@gmail.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 io_uring/sqpoll.c |    6 ++++++
 1 file changed, 6 insertions(+)

--- a/io_uring/sqpoll.c
+++ b/io_uring/sqpoll.c
@@ -412,6 +412,7 @@ void io_sqpoll_wait_sq(struct io_ring_ct
 __cold int io_sq_offload_create(struct io_ring_ctx *ctx,
 				struct io_uring_params *p)
 {
+	struct task_struct *task_to_put = NULL;
 	int ret;
 
 	/* Retain compatibility with failing for an invalid attach attempt */
@@ -492,6 +493,7 @@ __cold int io_sq_offload_create(struct i
 		}
 
 		sqd->thread = tsk;
+		task_to_put = get_task_struct(tsk);
 		ret = io_uring_alloc_task_context(tsk, ctx);
 		wake_up_new_task(tsk);
 		if (ret)
@@ -502,11 +504,15 @@ __cold int io_sq_offload_create(struct i
 		goto err;
 	}
 
+	if (task_to_put)
+		put_task_struct(task_to_put);
 	return 0;
 err_sqpoll:
 	complete(&ctx->sq_data->exited);
 err:
 	io_sq_thread_finish(ctx);
+	if (task_to_put)
+		put_task_struct(task_to_put);
 	return ret;
 }
 



  parent reply	other threads:[~2024-12-30 15:59 UTC|newest]

Thread overview: 136+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-12-30 15:41 [PATCH 6.12 000/114] 6.12.8-rc1 review Greg Kroah-Hartman
2024-12-30 15:41 ` [PATCH 6.12 001/114] media: dvb-frontends: dib3000mb: fix uninit-value in dib3000_write_reg Greg Kroah-Hartman
2024-12-30 15:41 ` [PATCH 6.12 002/114] ceph: allocate sparse_ext map only for sparse reads Greg Kroah-Hartman
2024-12-30 15:42 ` [PATCH 6.12 003/114] arm64: dts: broadcom: Fix L2 linesize for Raspberry Pi 5 Greg Kroah-Hartman
2024-12-30 15:42 ` [PATCH 6.12 004/114] bpf: Fix bpf_get_smp_processor_id() on !CONFIG_SMP Greg Kroah-Hartman
2024-12-30 15:42 ` [PATCH 6.12 005/114] fork: avoid inappropriate uprobe access to invalid mm Greg Kroah-Hartman
2024-12-30 15:42 ` [PATCH 6.12 006/114] mm/vmstat: fix a W=1 clang compiler warning Greg Kroah-Hartman
2024-12-30 15:42 ` [PATCH 6.12 007/114] selftests/bpf: Fix compilation error in get_uprobe_offset() Greg Kroah-Hartman
2024-12-30 15:42 ` [PATCH 6.12 008/114] smb: client: Deduplicate "select NETFS_SUPPORT" in Kconfig Greg Kroah-Hartman
2024-12-30 15:42 ` [PATCH 6.12 009/114] smb: fix bytes written value in /proc/fs/cifs/Stats Greg Kroah-Hartman
2024-12-30 15:42 ` [PATCH 6.12 010/114] tcp_bpf: Charge receive socket buffer in bpf_tcp_ingress() Greg Kroah-Hartman
2024-12-30 15:42 ` [PATCH 6.12 011/114] tcp_bpf: Add sk_rmem_alloc related logic for tcp_bpf ingress redirection Greg Kroah-Hartman
2024-12-30 15:42 ` [PATCH 6.12 012/114] bpf: Check negative offsets in __bpf_skb_min_len() Greg Kroah-Hartman
2024-12-30 15:42 ` [PATCH 6.12 013/114] nfsd: Revert "nfsd: release svc_expkey/svc_export with rcu_work" Greg Kroah-Hartman
2024-12-30 15:42 ` [PATCH 6.12 014/114] nfsd: restore callback functionality for NFSv4.0 Greg Kroah-Hartman
2024-12-30 15:42 ` [PATCH 6.12 015/114] mtd: diskonchip: Cast an operand to prevent potential overflow Greg Kroah-Hartman
2024-12-30 15:42 ` [PATCH 6.12 016/114] mtd: rawnand: arasan: Fix double assertion of chip-select Greg Kroah-Hartman
2024-12-30 15:42 ` [PATCH 6.12 017/114] mtd: rawnand: arasan: Fix missing de-registration of NAND Greg Kroah-Hartman
2024-12-30 15:42 ` [PATCH 6.12 018/114] phy: qcom-qmp: Fix register name in RX Lane config of SC8280XP Greg Kroah-Hartman
2024-12-30 15:42 ` [PATCH 6.12 019/114] phy: core: Fix an OF node refcount leakage in _of_phy_get() Greg Kroah-Hartman
2024-12-30 15:42 ` [PATCH 6.12 020/114] phy: core: Fix an OF node refcount leakage in of_phy_provider_lookup() Greg Kroah-Hartman
2024-12-30 15:42 ` [PATCH 6.12 021/114] phy: core: Fix that API devm_phy_put() fails to release the phy Greg Kroah-Hartman
2024-12-30 15:42 ` [PATCH 6.12 022/114] phy: core: Fix that API devm_of_phy_provider_unregister() fails to unregister the phy provider Greg Kroah-Hartman
2024-12-30 15:42 ` [PATCH 6.12 023/114] phy: core: Fix that API devm_phy_destroy() fails to destroy the phy Greg Kroah-Hartman
2024-12-30 15:42 ` [PATCH 6.12 024/114] phy: usb: Toggle the PHY power during init Greg Kroah-Hartman
2024-12-30 15:42 ` [PATCH 6.12 025/114] phy: rockchip: samsung-hdptx: Set drvdata before enabling runtime PM Greg Kroah-Hartman
2024-12-30 15:42 ` [PATCH 6.12 026/114] phy: rockchip: naneng-combphy: fix phy reset Greg Kroah-Hartman
2025-02-09 13:28   ` Aurelien Jarno
2025-02-11 10:29     ` Greg Kroah-Hartman
2025-02-11 22:18       ` Aurelien Jarno
2024-12-30 15:42 ` [PATCH 6.12 027/114] ALSA: memalloc: prefer dma_mapping_error() over explicit address checking Greg Kroah-Hartman
2024-12-30 15:42 ` [PATCH 6.12 028/114] dmaengine: mv_xor: fix child node refcount handling in early exit Greg Kroah-Hartman
2024-12-30 15:42 ` [PATCH 6.12 029/114] dmaengine: dw: Select only supported masters for ACPI devices Greg Kroah-Hartman
2024-12-30 15:42 ` [PATCH 6.12 030/114] dmaengine: tegra: Return correct DMA status when paused Greg Kroah-Hartman
2024-12-30 15:42 ` [PATCH 6.12 031/114] dmaengine: amd: qdma: Remove using the private get and set dma_ops APIs Greg Kroah-Hartman
2024-12-30 15:42 ` [PATCH 6.12 032/114] dmaengine: fsl-edma: implement the cleanup path of fsl_edma3_attach_pd() Greg Kroah-Hartman
2024-12-30 15:42 ` [PATCH 6.12 033/114] dmaengine: apple-admac: Avoid accessing registers in probe Greg Kroah-Hartman
2024-12-30 15:42 ` [PATCH 6.12 034/114] dmaengine: at_xdmac: avoid null_prt_deref in at_xdmac_prep_dma_memset Greg Kroah-Hartman
2024-12-30 15:42 ` [PATCH 6.12 035/114] ASoC: SOF: Intel: hda-dai: Do not release the link DMA on STOP Greg Kroah-Hartman
2024-12-30 15:42 ` [PATCH 6.12 036/114] platform/chrome: cros_ec_lpc: fix product identity for early Framework Laptops Greg Kroah-Hartman
2024-12-30 15:42 ` [PATCH 6.12 037/114] mtd: rawnand: fix double free in atmel_pmecc_create_user() Greg Kroah-Hartman
2024-12-30 15:42 ` [PATCH 6.12 038/114] ASoC: amd: ps: Fix for enabling DMIC on acp63 platform via _DSD entry Greg Kroah-Hartman
2024-12-30 15:42 ` [PATCH 6.12 039/114] ASoC: Intel: sof_sdw: Fix DMI match for Lenovo 21QA and 21QB Greg Kroah-Hartman
2024-12-30 15:42 ` [PATCH 6.12 040/114] ASoC: dt-bindings: realtek,rt5645: Fix CPVDD voltage comment Greg Kroah-Hartman
2024-12-30 15:42 ` [PATCH 6.12 041/114] ASoC: Intel: sof_sdw: Fix DMI match for Lenovo 21Q6 and 21Q7 Greg Kroah-Hartman
2024-12-30 15:42 ` [PATCH 6.12 042/114] powerpc/pseries/vas: Add close() callback in vas_vm_ops struct Greg Kroah-Hartman
2024-12-30 15:42 ` [PATCH 6.12 043/114] power: supply: bq24190: Fix BQ24296 Vbus regulator support Greg Kroah-Hartman
2024-12-30 15:42 ` [PATCH 6.12 044/114] stddef: make __struct_group() UAPI C++-friendly Greg Kroah-Hartman
2024-12-30 15:42 ` [PATCH 6.12 045/114] tracing/kprobe: Make trace_kprobes module callback called after jump_label update Greg Kroah-Hartman
2024-12-30 15:42 ` [PATCH 6.12 046/114] watchdog: it87_wdt: add PWRGD enable quirk for Qotom QCML04 Greg Kroah-Hartman
2024-12-30 15:42 ` [PATCH 6.12 047/114] watchdog: rzg2l_wdt: Power on the watchdog domain in the restart handler Greg Kroah-Hartman
2024-12-30 15:42 ` [PATCH 6.12 048/114] Revert "watchdog: s3c2410_wdt: use exynos_get_pmu_regmap_by_phandle() for PMU regs" Greg Kroah-Hartman
2024-12-30 15:42 ` [PATCH 6.12 049/114] watchdog: mediatek: Add support for MT6735 TOPRGU/WDT Greg Kroah-Hartman
2024-12-30 15:42 ` [PATCH 6.12 050/114] scsi: qla1280: Fix hw revision numbering for ISP1020/1040 Greg Kroah-Hartman
2024-12-30 15:42 ` [PATCH 6.12 051/114] scsi: megaraid_sas: Fix for a potential deadlock Greg Kroah-Hartman
2024-12-30 15:42 ` [PATCH 6.12 052/114] udf: Skip parent dir link count update if corrupted Greg Kroah-Hartman
2024-12-30 15:42 ` [PATCH 6.12 053/114] udf: Verify inode link counts before performing rename Greg Kroah-Hartman
2024-12-30 15:42 ` [PATCH 6.12 054/114] ALSA: ump: Dont open legacy substream for an inactive group Greg Kroah-Hartman
2024-12-30 15:42 ` [PATCH 6.12 055/114] ALSA: ump: Indicate the inactive group in legacy substream names Greg Kroah-Hartman
2024-12-30 15:42 ` [PATCH 6.12 056/114] ALSA: ump: Update legacy substream names upon FB info update Greg Kroah-Hartman
2024-12-30 15:42 ` [PATCH 6.12 057/114] ALSA: hda/conexant: fix Z60MR100 startup pop issue Greg Kroah-Hartman
2024-12-30 15:42 ` [PATCH 6.12 058/114] ALSA: sh: Use standard helper for buffer accesses Greg Kroah-Hartman
2024-12-30 15:42 ` [PATCH 6.12 059/114] smb: server: Fix building with GCC 15 Greg Kroah-Hartman
2024-12-30 15:42 ` [PATCH 6.12 060/114] regmap: Use correct format specifier for logging range errors Greg Kroah-Hartman
2024-12-30 15:42 ` [PATCH 6.12 061/114] LoongArch: Fix reserving screen info memory for above-4G firmware Greg Kroah-Hartman
2024-12-30 15:42 ` [PATCH 6.12 062/114] LoongArch: BPF: Adjust the parameter of emit_jirl() Greg Kroah-Hartman
2024-12-30 15:43 ` [PATCH 6.12 063/114] platform/x86: asus-nb-wmi: Ignore unknown event 0xCF Greg Kroah-Hartman
2024-12-30 15:43 ` [PATCH 6.12 064/114] bpf: Zero index arg error string for dynptr and iter Greg Kroah-Hartman
2024-12-30 15:43 ` [PATCH 6.12 065/114] spi: intel: Add Panther Lake SPI controller support Greg Kroah-Hartman
2024-12-30 15:43 ` [PATCH 6.12 066/114] scsi: mpt3sas: Diag-Reset when Doorbell-In-Use bit is set during driver load time Greg Kroah-Hartman
2024-12-30 15:43 ` [PATCH 6.12 067/114] scsi: mpi3mr: Synchronize access to ioctl data buffer Greg Kroah-Hartman
2024-12-30 15:43 ` [PATCH 6.12 068/114] scsi: mpi3mr: Fix corrupt config pages PHY state is switched in sysfs Greg Kroah-Hartman
2024-12-30 15:43 ` [PATCH 6.12 069/114] scsi: mpi3mr: Start controller indexing from 0 Greg Kroah-Hartman
2024-12-30 15:43 ` [PATCH 6.12 070/114] scsi: mpi3mr: Handling of fault code for insufficient power Greg Kroah-Hartman
2024-12-30 15:43 ` [PATCH 6.12 071/114] scsi: storvsc: Do not flag MAINTENANCE_IN return of SRB_STATUS_DATA_OVERRUN as an error Greg Kroah-Hartman
2024-12-30 15:43 ` [PATCH 6.12 072/114] ACPI/IORT: Add PMCG platform information for HiSilicon HIP09A Greg Kroah-Hartman
2024-12-30 15:43 ` [PATCH 6.12 073/114] spi: omap2-mcspi: Fix the IS_ERR() bug for devm_clk_get_optional_enabled() Greg Kroah-Hartman
2024-12-30 15:43 ` [PATCH 6.12 074/114] drm/dp_mst: Ensure mst_primary pointer is valid in drm_dp_mst_handle_up_req() Greg Kroah-Hartman
2024-12-30 15:43 ` [PATCH 6.12 075/114] virtio-blk: dont keep queue frozen during system suspend Greg Kroah-Hartman
2024-12-30 15:43 ` [PATCH 6.12 076/114] blk-mq: register cpuhp callback after hctx is added to xarray table Greg Kroah-Hartman
2024-12-30 15:43 ` [PATCH 6.12 077/114] wifi: iwlwifi: be less noisy if the NIC is dead in S3 Greg Kroah-Hartman
2024-12-30 15:43 ` [PATCH 6.12 078/114] ublk: detach gendisk from ublk device if add_disk() fails Greg Kroah-Hartman
2024-12-30 15:43 ` [PATCH 6.12 079/114] drm/xe: Take PM ref in delayed snapshot capture worker Greg Kroah-Hartman
2024-12-30 15:43 ` [PATCH 6.12 080/114] drm/xe: Move the coredump registration to the worker thread Greg Kroah-Hartman
2024-12-30 15:43 ` [PATCH 6.12 081/114] objtool: Add bch2_trans_unlocked_error() to bcachefs noreturns Greg Kroah-Hartman
2024-12-30 15:43 ` [PATCH 6.12 082/114] freezer, sched: Report frozen tasks as D instead of R Greg Kroah-Hartman
2024-12-30 15:43 ` [PATCH 6.12 083/114] dmaengine: loongson2-apb: Change GENMASK to GENMASK_ULL Greg Kroah-Hartman
2024-12-30 15:43 ` [PATCH 6.12 084/114] perf/x86/intel/uncore: Add Clearwater Forest support Greg Kroah-Hartman
2024-12-30 15:43 ` [PATCH 6.12 085/114] tracing: Constify string literal data member in struct trace_event_call Greg Kroah-Hartman
2024-12-30 15:43 ` [PATCH 6.12 086/114] tracing: Prevent bad count for tracing_cpumask_write Greg Kroah-Hartman
2024-12-30 15:43 ` [PATCH 6.12 087/114] rtla/timerlat: Fix histogram ALL for zero samples Greg Kroah-Hartman
2024-12-30 15:43 ` Greg Kroah-Hartman [this message]
2024-12-30 15:43 ` [PATCH 6.12 089/114] i2c: microchip-core: actually use repeated sends Greg Kroah-Hartman
2024-12-30 15:43 ` [PATCH 6.12 090/114] x86/fred: Clear WFE in missing-ENDBRANCH #CPs Greg Kroah-Hartman
2024-12-30 15:43 ` [PATCH 6.12 091/114] virt: tdx-guest: Just leak decrypted memory on unrecoverable errors Greg Kroah-Hartman
2024-12-30 15:43 ` [PATCH 6.12 092/114] PCI/MSI: Handle lack of irqdomain gracefully Greg Kroah-Hartman
2024-12-30 15:43 ` [PATCH 6.12 093/114] perf/x86/intel: Fix bitmask of OCR and FRONTEND events for LNC Greg Kroah-Hartman
2024-12-30 15:43 ` [PATCH 6.12 094/114] i2c: imx: add imx7d compatible string for applying erratum ERR007805 Greg Kroah-Hartman
2024-12-30 15:43 ` [PATCH 6.12 095/114] i2c: microchip-core: fix "ghost" detections Greg Kroah-Hartman
2024-12-30 15:43 ` [PATCH 6.12 096/114] perf/x86/intel/ds: Add PEBS format 6 Greg Kroah-Hartman
2024-12-30 15:43 ` [PATCH 6.12 097/114] power: supply: cros_charge-control: add mutex for driver data Greg Kroah-Hartman
2024-12-30 15:43 ` [PATCH 6.12 098/114] power: supply: cros_charge-control: allow start_threshold == end_threshold Greg Kroah-Hartman
2024-12-30 15:43 ` [PATCH 6.12 099/114] power: supply: cros_charge-control: hide start threshold on v2 cmd Greg Kroah-Hartman
2024-12-30 15:43 ` [PATCH 6.12 100/114] power: supply: gpio-charger: Fix set charge current limits Greg Kroah-Hartman
2024-12-30 15:43 ` [PATCH 6.12 101/114] btrfs: fix race with memory mapped writes when activating swap file Greg Kroah-Hartman
2024-12-30 15:43 ` [PATCH 6.12 102/114] btrfs: avoid monopolizing a core when activating a " Greg Kroah-Hartman
2025-02-06 11:41   ` Koichiro Den
2025-02-06 14:31     ` Greg Kroah-Hartman
2025-02-06 15:21       ` Koichiro Den
2025-02-06 17:45       ` David Sterba
2025-02-07 17:06         ` Koichiro Den
2024-12-30 15:43 ` [PATCH 6.12 103/114] btrfs: fix swap file activation failure due to extents that used to be shared Greg Kroah-Hartman
2024-12-30 15:43 ` [PATCH 6.12 104/114] btrfs: fix transaction atomicity bug when enabling simple quotas Greg Kroah-Hartman
2024-12-30 15:43 ` [PATCH 6.12 105/114] btrfs: sysfs: fix direct super block member reads Greg Kroah-Hartman
2024-12-30 15:43 ` [PATCH 6.12 106/114] btrfs: fix use-after-free when COWing tree bock and tracing is enabled Greg Kroah-Hartman
2024-12-30 15:43 ` [PATCH 6.12 107/114] btrfs: check folio mapping after unlock in put_file_data() Greg Kroah-Hartman
2024-12-30 15:43 ` [PATCH 6.12 108/114] btrfs: check folio mapping after unlock in relocate_one_folio() Greg Kroah-Hartman
2024-12-30 15:43 ` [PATCH 6.12 109/114] Bluetooth: btusb: mediatek: move Bluetooth power off command position Greg Kroah-Hartman
2024-12-30 15:43 ` [PATCH 6.12 110/114] Bluetooth: btusb: mediatek: add callback function in btusb_disconnect Greg Kroah-Hartman
2024-12-30 15:43 ` [PATCH 6.12 111/114] Bluetooth: btusb: mediatek: add intf release flow when usb disconnect Greg Kroah-Hartman
2024-12-30 15:43 ` [PATCH 6.12 112/114] Bluetooth: btusb: mediatek: change the conditions for ISO interface Greg Kroah-Hartman
2024-12-30 15:43 ` [PATCH 6.12 113/114] ALSA: ump: Shut up truncated string warning Greg Kroah-Hartman
2024-12-30 15:43 ` [PATCH 6.12 114/114] ALSA: sh: Fix wrong argument order for copy_from_iter() Greg Kroah-Hartman
2024-12-30 18:10 ` [PATCH 6.12 000/114] 6.12.8-rc1 review Florian Fainelli
2024-12-30 19:29 ` Pavel Machek
2024-12-30 20:58 ` Shuah Khan
2024-12-30 23:57 ` Takeshi Ogasawara
2024-12-31  8:01 ` Muhammad Usama Anjum
2025-01-16 12:09   ` Pavel Machek
2024-12-31  9:00 ` Naresh Kamboju
2024-12-31  9:42 ` Markus Reichelt
2024-12-31 19:10   ` Markus Reichelt
2024-12-31 13:02 ` Harshit Mogalapalli
2024-12-31 22:47 ` Ron Economos
2025-01-01  0:34 ` [PATCH 6.12] " Hardik Garg
2025-01-01 15:33 ` [PATCH 6.12 000/114] " Justin Forbes

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20241230154221.479925982@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=asml.silence@gmail.com \
    --cc=axboe@kernel.dk \
    --cc=huk23@m.fudan.edu.cn \
    --cc=patches@lists.linux.dev \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).