Android-x86
Fork
Donation

  • R/O
  • HTTP
  • SSH
  • HTTPS

frameworks-av: Commit

frameworks/av


Commit MetaInfo

Revision5ea21496069255bfbe0ff71db37624e2cafac406 (tree)
Time2020-04-23 21:50:38
AuthorMichael Goffioul <michael.goffioul@gmai...>
CommiterChih-Wei Huang

Log Message

Fix unsafe use of memcpy in audiopreprocessing

Memcpy cannot be used with overlapping memory areas. One should use
memmove instead.

See: https://issuetracker.google.com/issues/154712995

Change Summary

Incremental Difference

--- a/media/libeffects/preprocessing/PreProcessing.cpp
+++ b/media/libeffects/preprocessing/PreProcessing.cpp
@@ -1239,7 +1239,7 @@ int PreProcessingFx_Process(effect_handle_t self,
12391239 memcpy(outBuffer->s16,
12401240 session->outBuf,
12411241 fr * session->outChannelCount * sizeof(int16_t));
1242- memcpy(session->outBuf,
1242+ memmove(session->outBuf,
12431243 session->outBuf + fr * session->outChannelCount,
12441244 (session->framesOut - fr) * session->outChannelCount * sizeof(int16_t));
12451245 session->framesOut -= fr;
@@ -1302,7 +1302,7 @@ int PreProcessingFx_Process(effect_handle_t self,
13021302 session->procFrame->data_,
13031303 &frOut);
13041304 }
1305- memcpy(session->inBuf,
1305+ memmove(session->inBuf,
13061306 session->inBuf + frIn * session->inChannelCount,
13071307 (session->framesIn - frIn) * session->inChannelCount * sizeof(int16_t));
13081308 session->framesIn -= frIn;
@@ -1380,7 +1380,7 @@ int PreProcessingFx_Process(effect_handle_t self,
13801380 memcpy(outBuffer->s16 + framesWr * session->outChannelCount,
13811381 session->outBuf,
13821382 fr * session->outChannelCount * sizeof(int16_t));
1383- memcpy(session->outBuf,
1383+ memmove(session->outBuf,
13841384 session->outBuf + fr * session->outChannelCount,
13851385 (session->framesOut - fr) * session->outChannelCount * sizeof(int16_t));
13861386 session->framesOut -= fr;
@@ -1836,7 +1836,7 @@ int PreProcessingFx_ProcessReverse(effect_handle_t self,
18361836 session->revFrame->data_,
18371837 &frOut);
18381838 }
1839- memcpy(session->revBuf,
1839+ memmove(session->revBuf,
18401840 session->revBuf + frIn * session->inChannelCount,
18411841 (session->framesRev - frIn) * session->inChannelCount * sizeof(int16_t));
18421842 session->framesRev -= frIn;
Show on old repository browser