summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSuyeon Hwang <stom.hwang@samsung.com>2017-07-27 15:26:17 +0900
committerSooyeon Kim <sooyeon.kim@samsung.com>2017-12-14 05:35:16 +0000
commitea164970b480545d7c2798ff0e4eb9af53dea56b (patch)
tree7d5e53b84c8988bfe4c9e5823a9bd4b2f6bf978e
parent4beba74f1cb51f5a8103a5102b9c7d2fdcb395e0 (diff)
downloadstt-tizen_3.0_tv.tar.gz
stt-tizen_3.0_tv.tar.bz2
stt-tizen_3.0_tv.zip
Fix security issuetizen_3.0_tv
Change-Id: Ia24d81e34a31a50cb01f1e69e27d3185ef9ddeed Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com> (cherry picked from commit 39b6636e349a8a1e7314aeedc73c042cd4012b54)
-rw-r--r--server/sttd_recorder.c20
1 files changed, 18 insertions, 2 deletions
diff --git a/server/sttd_recorder.c b/server/sttd_recorder.c
index 6b19499..fc5d17d 100644
--- a/server/sttd_recorder.c
+++ b/server/sttd_recorder.c
@@ -560,11 +560,27 @@ int sttd_recorder_start(int uid)
#ifdef BUF_SAVE_MODE
g_count++;
- snprintf(g_temp_file_name, sizeof(g_temp_file_name), "/tmp/stt_temp_%d_%d", getpid(), g_count);
+ while (1) {
+ snprintf(g_temp_file_name, sizeof(g_temp_file_name), "/tmp/stt_temp_%d_%d", getpid(), g_count);
+ ret = access(g_temp_file_name, 0);
+
+ if (0 == ret) {
+ SLOG(LOG_ERROR, TAG_STTD, "[Recorder ERROR] File is already exist");
+ if (0 == remove(g_temp_file_name)) {
+ SLOG(LOG_DEBUG, TAG_STTD, "[Recorder] Remove file");
+ break;
+ } else {
+ g_count++;
+ }
+ } else {
+ break;
+ }
+ }
+
SECURE_SLOG(LOG_DEBUG, TAG_STTD, "[Recorder] Temp file name=[%s]", g_temp_file_name);
/* open test file */
- g_pFile = fopen(g_temp_file_name, "wb+");
+ g_pFile = fopen(g_temp_file_name, "wb+x");
if (!g_pFile) {
SLOG(LOG_ERROR, TAG_STTD, "[Recorder ERROR] File not found!");
return -1;