mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2024-12-23 23:02:25 +00:00
pyfec: fix precondition checks on k and m to actually check the value before coercing it into a smaller type (oops)
This commit is contained in:
parent
9c50c156dd
commit
10530a25bc
@ -99,14 +99,15 @@ Encoder_init(Encoder *self, PyObject *args, PyObject *kwdict) {
|
||||
"m",
|
||||
NULL
|
||||
};
|
||||
if (!PyArg_ParseTupleAndKeywords(args, kwdict, "ii", kwlist, &self->kk, &self->mm))
|
||||
int ink, inm;
|
||||
if (!PyArg_ParseTupleAndKeywords(args, kwdict, "ii", kwlist, &ink, &inm))
|
||||
return -1;
|
||||
|
||||
if (self->kk < 1) {
|
||||
if (ink < 1) {
|
||||
py_raise_fec_error("Precondition violation: first argument is required to be greater than or equal to 1, but it was %d", self->kk);
|
||||
return -1;
|
||||
}
|
||||
if (self->mm < 1) {
|
||||
if (inm < 1) {
|
||||
py_raise_fec_error("Precondition violation: second argument is required to be greater than or equal to 1, but it was %d", self->mm);
|
||||
return -1;
|
||||
}
|
||||
@ -114,10 +115,12 @@ Encoder_init(Encoder *self, PyObject *args, PyObject *kwdict) {
|
||||
py_raise_fec_error("Precondition violation: second argument is required to be less than or equal to 255, but it was %d", self->mm);
|
||||
return -1;
|
||||
}
|
||||
if (self->kk > self->mm) {
|
||||
py_raise_fec_error("Precondition violation: first argument is required to be less than or equal to the second argument, but they were %d and %d respectively", self->kk, self->mm);
|
||||
if (ink > inm) {
|
||||
py_raise_fec_error("Precondition violation: first argument is required to be less than or equal to the second argument, but they were %d and %d respectively", ink, inm);
|
||||
return -1;
|
||||
}
|
||||
self->kk = (unsigned char)ink;
|
||||
self->mm = (unsigned char)inm;
|
||||
self->fec_matrix = fec_new(self->kk, self->mm);
|
||||
|
||||
return 0;
|
||||
@ -352,14 +355,15 @@ Decoder_init(Encoder *self, PyObject *args, PyObject *kwdict) {
|
||||
NULL
|
||||
};
|
||||
|
||||
if (!PyArg_ParseTupleAndKeywords(args, kwdict, "ii", kwlist, &self->kk, &self->mm))
|
||||
int ink, inm;
|
||||
if (!PyArg_ParseTupleAndKeywords(args, kwdict, "ii", kwlist, &ink, &inm))
|
||||
return -1;
|
||||
|
||||
if (self->kk < 1) {
|
||||
if (ink < 1) {
|
||||
py_raise_fec_error("Precondition violation: first argument is required to be greater than or equal to 1, but it was %d", self->kk);
|
||||
return -1;
|
||||
}
|
||||
if (self->mm < 1) {
|
||||
if (inm < 1) {
|
||||
py_raise_fec_error("Precondition violation: second argument is required to be greater than or equal to 1, but it was %d", self->mm);
|
||||
return -1;
|
||||
}
|
||||
@ -367,10 +371,12 @@ Decoder_init(Encoder *self, PyObject *args, PyObject *kwdict) {
|
||||
py_raise_fec_error("Precondition violation: second argument is required to be less than or equal to 255, but it was %d", self->mm);
|
||||
return -1;
|
||||
}
|
||||
if (self->kk > self->mm) {
|
||||
py_raise_fec_error("Precondition violation: first argument is required to be less than or equal to the second argument, but they were %d and %d respectively", self->kk, self->mm);
|
||||
if (ink > inm) {
|
||||
py_raise_fec_error("Precondition violation: first argument is required to be less than or equal to the second argument, but they were %d and %d respectively", ink, inm);
|
||||
return -1;
|
||||
}
|
||||
self->kk = (unsigned char)ink;
|
||||
self->mm = (unsigned char)inm;
|
||||
self->fec_matrix = fec_new(self->kk, self->mm);
|
||||
|
||||
return 0;
|
||||
|
Loading…
Reference in New Issue
Block a user