Skip to content

Commit

Permalink
pythongh-111178: fix UBSan failures in Modules/zlibmodule.c (python…
Browse files Browse the repository at this point in the history
  • Loading branch information
picnixz authored and srinivasreddy committed Jan 8, 2025
1 parent 2959e67 commit f2e76d3
Showing 1 changed file with 9 additions and 5 deletions.
14 changes: 9 additions & 5 deletions Modules/zlibmodule.c
Original file line number Diff line number Diff line change
Expand Up @@ -221,6 +221,8 @@ typedef struct
PyThread_type_lock lock;
} compobject;

#define _compobject_CAST(op) ((compobject *)op)

static void
zlib_error(zlibstate *state, z_stream zst, int err, const char *msg)
{
Expand Down Expand Up @@ -706,7 +708,7 @@ zlib_decompressobj_impl(PyObject *module, int wbits, PyObject *zdict)
static void
Dealloc(compobject *self)
{
PyObject *type = (PyObject *)Py_TYPE(self);
PyTypeObject *type = Py_TYPE(self);
PyThread_free_lock(self->lock);
Py_XDECREF(self->unused_data);
Py_XDECREF(self->unconsumed_tail);
Expand All @@ -716,18 +718,20 @@ Dealloc(compobject *self)
}

static void
Comp_dealloc(compobject *self)
Comp_dealloc(PyObject *op)
{
compobject *self = _compobject_CAST(op);
if (self->is_initialised)
deflateEnd(&self->zst);
(void)deflateEnd(&self->zst);
Dealloc(self);
}

static void
Decomp_dealloc(compobject *self)
Decomp_dealloc(PyObject *op)
{
compobject *self = _compobject_CAST(op);
if (self->is_initialised)
inflateEnd(&self->zst);
(void)inflateEnd(&self->zst);
Dealloc(self);
}

Expand Down

0 comments on commit f2e76d3

Please sign in to comment.