8000 gh-111178: fix UBSan failures in `Modules/{blake2,md5,sha1,sha2,sha3}module.c` by picnixz · Pull Request #128248 · python/cpython · GitHub
[go: up one dir, main page]

Skip to content

gh-111178: fix UBSan failures in Modules/{blake2,md5,sha1,sha2,sha3}module.c #128248

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 14 commits into from
Jan 27, 2025
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
suppress unused parameters in {md5,sha*}module.c
  • Loading branch information
picnixz committed Dec 23, 2024
commit d9452e87109498fb79cf81a4a8f875d2cc65922f
6 changes: 3 additions & 3 deletions Modules/md5module.c
Original file line number Diff line number Diff line change
Expand Up @@ -227,19 +227,19 @@ static PyMethodDef MD5_methods[] = {
};

static PyObject *
MD5_get_block_size(PyObject *self, void *closure)
MD5_get_block_size(PyObject *Py_UNUSED(self), void *Py_UNUSED(closure))
{
return PyLong_FromLong(MD5_BLOCKSIZE);
}

static PyObject *
MD5_get_name(PyObject *self, void *closure)
MD5_get_name(PyObject *Py_UNUSED(self), void *Py_UNUSED(closure))
{
return PyUnicode_FromStringAndSize("md5", 3);
}

static PyObject *
md5_get_digest_size(PyObject *self, void *closure)
md5_get_digest_size(PyObject *Py_UNUSED(self), void *Py_UNUSED(closure))
{
return PyLong_FromLong(MD5_DIGESTSIZE);
}
Expand Down
6 changes: 3 additions & 3 deletions Modules/sha1module.c
Original file line number Diff line number Diff line change
Expand Up @@ -220,19 +220,19 @@ static PyMethodDef SHA1_methods[] = {
};

static PyObject *
SHA1_get_block_size(PyObject *self, void *closure)
SHA1_get_block_size(PyObject *Py_UNUSED(self), void *Py_UNUSED(closure))
{
return PyLong_FromLong(SHA1_BLOCKSIZE);
}

static PyObject *
SHA1_get_name(PyObject *self, void *closure)
SHA1_get_name(PyObject *Py_UNUSED(self), void *Py_UNUSED(closure))
{
return PyUnicode_FromStringAndSize("sha1", 4);
}

static PyObject *
sha1_get_digest_size(PyObject *self, void *closure)
sha1_get_digest_size(PyObject *Py_UNUSED(self), void *Py_UNUSED(closure))
{
return PyLong_FromLong(SHA1_DIGESTSIZE);
}
Expand Down
12 changes: 6 additions & 6 deletions Modules/sha2module.c
Original file line number Diff line number Diff line change
Expand Up @@ -443,33 +443,33 @@ static PyMethodDef SHA512_methods[] = {
};

static PyObject *
SHA256_get_block_size(PyObject *self, void *closure)
SHA256_get_block_size(PyObject *Py_UNUSED(self), void *Py_UNUSED(closure))
{
return PyLong_FromLong(SHA256_BLOCKSIZE);
}

static PyObject *
SHA512_get_block_size(PyObject *self, void *closure)
SHA512_get_block_size(PyObject *Py_UNUSED(self), void *Py_UNUSED(closure))
{
return PyLong_FromLong(SHA512_BLOCKSIZE);
}

static PyObject *
SHA256_get_digest_size(PyObject *op, void *closure)
SHA256_get_digest_size(PyObject *op, void *Py_UNUSED(closure))
{
SHA256object *self = _SHA256object_CAST(op);
return PyLong_FromLong(self->digestsize);
}

static PyObject *
SHA512_get_digest_size(PyObject *op, void *closure)
SHA512_get_digest_size(PyObject *op, void *Py_UNUSED(closure))
{
SHA512object *self = _SHA512object_CAST(op);
return PyLong_FromLong(self->digestsize);
}

static PyObject *
SHA256_get_name(PyObject *op, void *closure)
SHA256_get_name(PyObject *op, void *Py_UNUSED(closure))
{
SHA256object *self = _SHA256object_CAST(op);
if (self->digestsize == 28) {
Expand All @@ -479,7 +479,7 @@ SHA256_get_name(PyObject *op, void *closure)
}

static PyObject *
SHA512_get_name(PyObject *op, void *closure)
SHA512_get_name(PyObject *op, void *Py_UNUSED(closure))
{
SHA512object *self = _SHA512object_CAST(op);
if (self->digestsize == 64) {
Expand Down
16 changes: 8 additions & 8 deletions Modules/sha3module.c
Original file line number Diff line number Diff line change
Expand Up @@ -306,7 +306,7 @@ static PyMethodDef SHA3_methods[] = {


static PyObject *
SHA3_get_block_size(PyObject *op, void *closure)
SHA3_get_block_size(PyObject *op, void *Py_UNUSED(closure))
{
SHA3object *self = _SHA3object_CAST(op);
uint32_t rate = Hacl_Hash_SHA3_block_len(self->hash_state);
Expand All @@ -315,7 +315,7 @@ SHA3_get_block_size(PyObject *op, void *closure)


static PyObject *
SHA3_get_name(PyObject *self, void *closure)
SHA3_get_name(PyObject *self, void *Py_UNUSED(closure))
{
PyTypeObject *type = Py_TYPE(self);

Expand All @@ -342,7 +342,7 @@ SHA3_get_name(PyObject *self, void *closure)


static PyObject *
SHA3_get_digest_size(PyObject *op, void *closure)
SHA3_get_digest_size(PyObject *op, void *Py_UNUSED(closure))
{
// Preserving previous behavior: variable-length algorithms return 0
SHA3object *self = _SHA3object_CAST(op);
Expand All @@ -354,7 +354,7 @@ SHA3_get_digest_size(PyObject *op, void *closure)


static PyObject *
SHA3_get_capacity_bits(PyObject *op, void *closure)
SHA3_get_capacity_bits(PyObject *op, void *Py_UNUSED(closure))
{
SHA3object *self = _SHA3object_CAST(op);
uint32_t rate = Hacl_Hash_SHA3_block_len(self->hash_state) * 8;
Expand All @@ -365,15 +365,15 @@ SHA3_get_capacity_bits(PyObject *op, void *closure)


static PyObject *
SHA3_get_rate_bits(PyObject *op, void *closure)
SHA3_get_rate_bits(PyObject *op, void *Py_UNUSED(closure))
{
SHA3object *self = _SHA3object_CAST(op);
uint32_t rate = Hacl_Hash_SHA3_block_len(self->hash_state) * 8;
return PyLong_FromLong(rate);
}

static PyObject *
SHA3_get_suffix(PyObject *self, void *closure)
SHA3_get_suffix(PyObject *Py_UNUSED(self), void *Py_UNUSED(closure))
{
unsigned char suffix[2] = {0x06, 0};
return PyBytes_FromStringAndSize((const char *)suffix, 1);
Expand Down Expand Up @@ -512,13 +512,13 @@ _sha3_shake_128_hexdigest_impl(SHA3object *self, unsigned long length)
}

static PyObject *
SHAKE_get_digest_size(PyObject *self, void *closure)
SHAKE_get_digest_size(PyObject *Py_UNUSED(self), void *Py_UNUSED(closure))
{
return PyLong_FromLong(0);
}

static PyObject *
SHAKE_get_suffix(PyObject *self, void *closure)
SHAKE_get_suffix(PyObject *Py_UNUSED(self), void *Py_UNUSED(closure))
{
unsigned char suffix[2] = {0x1f, 0};
return PyBytes_FromStringAndSize((const char *)suffix, 1);
Expand Down
Loading
0