# DF-4353 — dce110_create_resource_pool leaks the pool on construct() failure; dc->fbc_compressor is never destroyed (DF-4318/DF-4309 family)

## Build / Run (guest model)
```
cc -O2 -Wall -o df4353 df4353.c
./df4353
```
Expected: `LEAK CONFIRMED (model)` — after a failed construct the
kzalloc'd `struct dce110_resource_pool` *and* the fbc compressor remain
live (2 orphaned allocations); the fixed failure arm leaves 0.

## Root cause
1. dce110_resource.c:1398-1414 — on `construct()` failure the function
   returns NULL without `kfree(pool)`.  construct's failure arm already
   ran `destruct(pool)` (:1394), which frees only the sub-objects; the
   caller (core/dc.c dc_construct) never received the pointer.  The DF-
   4318 twin at the dce110 instance (pool embeds the whole
   resource_pool base, core_types.h:120-198 — ~KB per failed bind).
2. Sibling: `dc->fbc_compressor = dce110_compressor_create(ctx)`
   (:1372-1373) — `dce110_compressor_destroy()`
   (dce110_compressor.c:439) has **zero callers** in the tree; the
   compressor outlives teardown on every path (DF-4309 flavor).

## Fix
`fix.diff` (git apply --check clean): `kfree(pool)` in the failure arm
(destruct already ran inside construct) + destroy the compressor in
construct's res_create_fail arm.
