1. Replace readdir() with readdir_r() because of unguaranteed thread safety of readdir()
2. Add try-catch when cvtcolor is called. If exception might be thrown, *_INVALID_OPERATION
would be returned. Then, testsuite can handle the error case.
Change-Id: Id6ef3455ff5e5e37be8e91cf1c7af817093e7d48
Signed-off-by: Tae-Young Chung <ty83.chung@samsung.com>
Name: capi-media-vision
Summary: Media Vision library for Tizen Native API
Version: 0.3.27
-Release: 0
+Release: 1
Group: Multimedia/Framework
License: Apache-2.0 and BSD-3-Clause
Source0: %{name}-%{version}.tar.gz
if (!image.data)
return MEDIA_VISION_ERROR_INVALID_PARAMETER;
- cv::cvtColor(image, image, CV_BGR2RGB);
+ try {
+ cv::cvtColor(image, image, CV_BGR2RGB);
+ } catch (cv::Exception &e) {
+ return MEDIA_VISION_ERROR_INVALID_OPERATION;
+ }
*pBufferSize = image.total() * image.elemSize();
(*pDataBuffer) = new unsigned char[*pBufferSize];
int frames_counter = 0;
char (*frames)[FILE_PATH_SIZE] = (char **)malloc(0);
- struct dirent *ent;
+ int ret = 0;
+ struct dirent ent;
+ struct dirent *ent_eof;
DIR *dir = opendir(track_target_file_name);
if (dir == NULL) {
return MEDIA_VISION_ERROR_INVALID_PATH;
}
- while ((ent = readdir(dir)) != NULL) {
- if (ent->d_name[0] == '.' || strlen(ent->d_name) < 4)
+ while ((ret = readdir_r(dir, &ent, &ent_eof)) == 0 && ent_eof != NULL) {
+ if (ent.d_name[0] == '.' || strlen(ent.d_name) < 4)
continue;
- if (strcmp(".jpg", ent->d_name + strlen(ent->d_name) - 4) != 0)
+ if (strcmp(".jpg", ent.d_name + strlen(ent.d_name) -4) != 0)
continue;
-
frames_counter++;
frames = (char **) realloc(frames, frames_counter * FILE_PATH_SIZE);
-
snprintf(frames[frames_counter -1], FILE_PATH_SIZE, "%s/%s",
- track_target_file_name, ent->d_name);
+ track_target_file_name, ent.d_name);
}
-
closedir(dir);
if (frames_counter <= 0)
int frames_counter = 0;
char (*frames)[FILE_PATH_SIZE] = (char **)malloc(0);
- struct dirent *ent;
+ int ret = 0;
+ struct dirent ent;
+ struct dirent *ent_eof;
DIR *dir = opendir(path_to_image);
if (dir == NULL) {
return MEDIA_VISION_ERROR_INVALID_PATH;
}
- while ((ent = readdir(dir)) != NULL) {
- if (ent->d_name[0] == '.' || strlen(ent->d_name) < 4)
+ while ((ret = readdir_r(dir, &ent, &ent_eof)) == 0 && ent_eof != NULL) {
+ if (ent.d_name[0] == '.' || strlen(ent.d_name) < 4)
continue;
- if (strcmp(".jpg", ent->d_name + strlen(ent->d_name) -4) != 0)
+ if (strcmp(".jpg", ent.d_name + strlen(ent.d_name) -4) != 0)
continue;
frames_counter++;
frames = (char**)realloc(frames, frames_counter * FILE_PATH_SIZE);
- snprintf(frames[frames_counter -1], FILE_PATH_SIZE, "%s/%s", path_to_image, ent->d_name);
+ snprintf(frames[frames_counter -1], FILE_PATH_SIZE, "%s/%s", path_to_image, ent.d_name);
}
-
closedir(dir);
if (frames_counter <= 0)