Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5b442f55 authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

Merge "ASoC: msm-pcm-voip: Avoid interger underflow"

parents f84fb83e 1a2e110c
Loading
Loading
Loading
Loading
+11 −3
Original line number Original line Diff line number Diff line
@@ -368,7 +368,7 @@ static void voip_process_ul_pkt(uint8_t *voc_pkt,
		case MODE_AMR: {
		case MODE_AMR: {
			if (pkt_len <= DSP_FRAME_HDR_LEN) {
			if (pkt_len <= DSP_FRAME_HDR_LEN) {
				pr_err("%s: pkt_len %d is < required len\n",
				pr_err("%s: pkt_len %d is < required len\n",
						pkt_len);
						__func__, pkt_len);
				spin_unlock_irqrestore(&prtd->dsp_ul_lock,
				spin_unlock_irqrestore(&prtd->dsp_ul_lock,
							dsp_flags);
							dsp_flags);
				return;
				return;
@@ -395,7 +395,7 @@ static void voip_process_ul_pkt(uint8_t *voc_pkt,
		case MODE_4GV_NW: {
		case MODE_4GV_NW: {
			if (pkt_len <= DSP_FRAME_HDR_LEN) {
			if (pkt_len <= DSP_FRAME_HDR_LEN) {
				pr_err("%s: pkt_len %d is < required len\n",
				pr_err("%s: pkt_len %d is < required len\n",
						pkt_len);
						__func__, pkt_len);
				spin_unlock_irqrestore(&prtd->dsp_ul_lock,
				spin_unlock_irqrestore(&prtd->dsp_ul_lock,
							dsp_flags);
							dsp_flags);
				return;
				return;
@@ -439,7 +439,7 @@ static void voip_process_ul_pkt(uint8_t *voc_pkt,


			if (pkt_len <= 2 * DSP_FRAME_HDR_LEN) {
			if (pkt_len <= 2 * DSP_FRAME_HDR_LEN) {
				pr_err("%s: pkt_len %d is < required len\n",
				pr_err("%s: pkt_len %d is < required len\n",
						pkt_len);
						__func__, pkt_len);
				spin_unlock_irqrestore(&prtd->dsp_ul_lock,
				spin_unlock_irqrestore(&prtd->dsp_ul_lock,
							dsp_flags);
							dsp_flags);
				return;
				return;
@@ -479,6 +479,14 @@ static void voip_process_ul_pkt(uint8_t *voc_pkt,
				buf_node->frame.frm_hdr.timestamp = timestamp;
				buf_node->frame.frm_hdr.timestamp = timestamp;
				voc_pkt = voc_pkt + DSP_FRAME_HDR_LEN;
				voc_pkt = voc_pkt + DSP_FRAME_HDR_LEN;


				if (pkt_len <= 2 * DSP_FRAME_HDR_LEN) {
					pr_err("%s: pkt_len %d is < required len\n",
							__func__, pkt_len);
					spin_unlock_irqrestore(&prtd->dsp_ul_lock,
								dsp_flags);
					return;
				}

				/* There are two frames in the buffer. Length
				/* There are two frames in the buffer. Length
				 * of the second frame:
				 * of the second frame:
				 */
				 */