}
target[datalength++] = B32_ar[output[0]];
if (srclength >= 1) {
+ if (datalength + 1 > targsize) { return (-2); }
target[datalength++] = B32_ar[output[1]];
if (srclength == 1 && output[2] == 0) {
+ if (datalength + 1 > targsize) { return (-2); }
target[datalength++] = Pad32;
} else {
+ if (datalength + 1 > targsize) { return (-2); }
target[datalength++] = B32_ar[output[2]];
}
} else {
+ if (datalength + 1 > targsize) { return (-2); }
target[datalength++] = Pad32;
+ if (datalength + 1 > targsize) { return (-2); }
target[datalength++] = Pad32;
}
if (srclength >= 2) {
+ if (datalength + 1 > targsize) { return (-2); }
target[datalength++] = B32_ar[output[3]];
} else {
+ if (datalength + 1 > targsize) { return (-2); }
target[datalength++] = Pad32;
}
if (srclength >= 3) {
+ if (datalength + 1 > targsize) { return (-2); }
target[datalength++] = B32_ar[output[4]];
if (srclength == 3 && output[5] == 0) {
+ if (datalength + 1 > targsize) { return (-2); }
target[datalength++] = Pad32;
} else {
+ if (datalength + 1 > targsize) { return (-2); }
target[datalength++] = B32_ar[output[5]];
}
} else {
+ if (datalength + 1 > targsize) { return (-2); }
target[datalength++] = Pad32;
+ if (datalength + 1 > targsize) { return (-2); }
target[datalength++] = Pad32;
}
if (srclength >= 4) {
+ if (datalength + 1 > targsize) { return (-2); }
target[datalength++] = B32_ar[output[6]];
} else {
+ if (datalength + 1 > targsize) { return (-2); }
target[datalength++] = Pad32;
}
+ if (datalength + 1 > targsize) { return (-2); }
target[datalength++] = Pad32;
}
- if (datalength > targsize) {
+ if (datalength+1 > targsize) {
return (-3);
}
target[datalength] = '\0'; /* Returned value doesn't count \0. */