}
-int recorder_set_filename(recorder_h recorder, const char *filename)
+int recorder_set_filename(recorder_h recorder, const char *filename)
{
int ret = RECORDER_ERROR_NONE;
+ size_t length = 0;
muse_recorder_api_e api = MUSE_RECORDER_API_SET_FILENAME;
recorder_cli_s *pc = (recorder_cli_s *)recorder;
recorder_msg_param param;
return RECORDER_ERROR_INVALID_PARAMETER;
}
- LOGD("ENTER");
+ LOGD("ENTER [%s]", filename);
+
+ length = strlen(filename);
+
+ if (length >= RECORDER_FILENAME_MAX - 1) {
+ LOGE("too long file name [%d]", length);
+ return RECORDER_ERROR_INVALID_PARAMETER;
+ }
if (storage_get_origin_internal_path(filename, RECORDER_FILENAME_MAX, set_filename) < 0) {
/* Cannot convert. Use original path. */
- strncpy(set_filename, filename, strlen(filename));
+ strncpy(set_filename, filename, length + 1);
} else {
/* Converted. Use converted path. */
LOGD("Converted filename : %s -> %s", filename, set_filename);