return THUMBNAIL_UTIL_ERROR_NONE;
}
-static int __thumbnail_util_get_file_ext(const char *file_path, char *file_ext, int max_len)
-{
- int i = 0;
-
- thumbnail_util_retvm_if(!file_path, THUMBNAIL_UTIL_ERROR_INVALID_PARAMETER, "Invalid path");
-
- for (i = (int)strlen(file_path); i >= 0; i--) {
- if ((file_path[i] == '.') && (i < (int)strlen(file_path))) {
- g_strlcpy(file_ext, &file_path[i + 1], max_len);
- return THUMBNAIL_UTIL_ERROR_NONE;
- }
-
- /* meet the dir. no ext */
- if (file_path[i] == '/')
- return THUMBNAIL_UTIL_ERROR_INVALID_PARAMETER;
- }
-
- return THUMBNAIL_UTIL_ERROR_INVALID_PARAMETER;
-}
-
static int __thumbnail_util_check_media_type(const char *path, thumbnail_util_media_type_e *type)
{
int ret = THUMBNAIL_UTIL_ERROR_NONE;
if (type == THUMBNAIL_UTIL_IMAGE) {
ret = create_image_thumbnail_to_file(path, width, height, thumbnail_path, false);
} else {
- char ext[255] = { 0 };
- ret = __thumbnail_util_get_file_ext(thumbnail_path, ext, sizeof(ext));
- thumbnail_util_retvm_if(ret != THUMBNAIL_UTIL_ERROR_NONE, ret, "__thumbnail_util_get_file_ext failed");
-
- /* If video file, thumbnail extension is only JPEG */
- if (strcasecmp(ext, "JPG") != 0 && strcasecmp(ext, "JPEG") != 0) {
- thumbnail_util_error("Wrong file name[%s]", thumbnail_path);
+ if (!g_regex_match_simple("[^/]\\.jpe?g$", thumbnail_path, G_REGEX_CASELESS, 0)) {
+ thumbnail_util_error("Unsupported path or extensions [%s]", thumbnail_path);
return THUMBNAIL_UTIL_ERROR_INVALID_PARAMETER;
}