|
|
@ -316,6 +316,8 @@ mmsServer_handleFileOpenRequest(
|
|
|
|
|
|
|
|
|
|
|
|
if (bufPos < 0) goto exit_reject_invalid_pdu;
|
|
|
|
if (bufPos < 0) goto exit_reject_invalid_pdu;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (bufPos + length > maxBufPos) goto exit_reject_invalid_pdu;
|
|
|
|
|
|
|
|
|
|
|
|
switch(tag) {
|
|
|
|
switch(tag) {
|
|
|
|
case 0xa0: /* filename */
|
|
|
|
case 0xa0: /* filename */
|
|
|
|
|
|
|
|
|
|
|
@ -575,6 +577,8 @@ mmsServer_handleObtainFileRequest(
|
|
|
|
|
|
|
|
|
|
|
|
if (bufPos < 0) goto exit_reject_invalid_pdu;
|
|
|
|
if (bufPos < 0) goto exit_reject_invalid_pdu;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (bufPos + length > maxBufPos) goto exit_reject_invalid_pdu;
|
|
|
|
|
|
|
|
|
|
|
|
switch(tag) {
|
|
|
|
switch(tag) {
|
|
|
|
|
|
|
|
|
|
|
|
case 0xa1: /* source filename */
|
|
|
|
case 0xa1: /* source filename */
|
|
|
@ -987,7 +991,7 @@ mmsServer_handleFileRenameRequest(
|
|
|
|
|
|
|
|
|
|
|
|
bufPos = BerDecoder_decodeLength(buffer, &length, bufPos, maxBufPos);
|
|
|
|
bufPos = BerDecoder_decodeLength(buffer, &length, bufPos, maxBufPos);
|
|
|
|
|
|
|
|
|
|
|
|
if (bufPos < 0) {
|
|
|
|
if ((bufPos < 0) || (bufPos + length > maxBufPos)) {
|
|
|
|
mmsMsg_createMmsRejectPdu(&invokeId, MMS_ERROR_REJECT_INVALID_PDU, response);
|
|
|
|
mmsMsg_createMmsRejectPdu(&invokeId, MMS_ERROR_REJECT_INVALID_PDU, response);
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -1071,7 +1075,7 @@ mmsServer_handleFileDirectoryRequest(
|
|
|
|
|
|
|
|
|
|
|
|
bufPos = BerDecoder_decodeLength(buffer, &length, bufPos, maxBufPos);
|
|
|
|
bufPos = BerDecoder_decodeLength(buffer, &length, bufPos, maxBufPos);
|
|
|
|
|
|
|
|
|
|
|
|
if (bufPos < 0) {
|
|
|
|
if ((bufPos < 0) || (bufPos + length > maxBufPos)) {
|
|
|
|
mmsMsg_createMmsRejectPdu(&invokeId, MMS_ERROR_REJECT_INVALID_PDU, response);
|
|
|
|
mmsMsg_createMmsRejectPdu(&invokeId, MMS_ERROR_REJECT_INVALID_PDU, response);
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|