Skip to content

Commit f425610

Browse files
committed
Addeed error check for null params in C APIs
1 parent 10468d4 commit f425610

File tree

1 file changed

+29
-9
lines changed

1 file changed

+29
-9
lines changed

tensorflow_lite_support/c/task/vision/image_classifier.cc

Lines changed: 29 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -103,10 +103,18 @@ TfLiteImageClassifierOptions TfLiteImageClassifierOptionsCreate() {
103103

104104
TfLiteImageClassifier* TfLiteImageClassifierFromOptions(
105105
const TfLiteImageClassifierOptions* options, TfLiteSupportError** error) {
106+
if (options == nullptr) {
107+
::tflite::support::CreateTfLiteSupportError(
108+
kInvalidArgumentError, "Expected non null options.", error);
109+
return nullptr;
110+
}
111+
106112
std::unique_ptr<ImageClassifierOptionsCpp> cpp_options =
107113
CreateImageClassifierCppOptionsFromCOptions(options);
108114

109115
if (cpp_options == nullptr) {
116+
::tflite::support::CreateTfLiteSupportError(
117+
kError, "Some error occured.", error);
110118
return nullptr;
111119
}
112120

@@ -116,8 +124,8 @@ TfLiteImageClassifier* TfLiteImageClassifierFromOptions(
116124
return new TfLiteImageClassifier{.impl =
117125
std::move(classifier_status.value())};
118126
} else {
119-
::tflite::support::CreateTfLiteSupportErrorWithStatus(classifier_status.status(),
120-
error);
127+
::tflite::support::CreateTfLiteSupportErrorWithStatus(
128+
classifier_status.status(), error);
121129
return nullptr;
122130
}
123131
}
@@ -168,7 +176,15 @@ TfLiteClassificationResult* TfLiteImageClassifierClassifyWithRoi(
168176
const TfLiteImageClassifier* classifier,
169177
const TfLiteFrameBuffer* frame_buffer, const TfLiteBoundingBox* roi,
170178
TfLiteSupportError** error) {
171-
if (classifier == nullptr || frame_buffer == nullptr) {
179+
if (classifier == nullptr) {
180+
::tflite::support::CreateTfLiteSupportError(
181+
kInvalidArgumentError, "Expected non null image classifier.", error);
182+
return nullptr;
183+
}
184+
185+
if (frame_buffer == nullptr) {
186+
::tflite::support::CreateTfLiteSupportError(
187+
kInvalidArgumentError, "Expected non null frame buffer.", error);
172188
return nullptr;
173189
}
174190

@@ -185,20 +201,24 @@ TfLiteClassificationResult* TfLiteImageClassifierClassifyWithRoi(
185201

186202
StatusOr<std::unique_ptr<FrameBufferCpp>> cpp_frame_buffer_status =
187203
::tflite::task::vision::CreateCppFrameBuffer(*frame_buffer);
188-
if (!cpp_frame_buffer_status.ok()) return nullptr;
189-
204+
if (!cpp_frame_buffer_status.ok()) {
205+
::tflite::support::CreateTfLiteSupportErrorWithStatus(
206+
cpp_frame_buffer_status.status(), error);
207+
return nullptr;
208+
}
209+
190210
// fnc_sample(cpp_frame_buffer_status);
191-
StatusOr<ClassificationResultCpp> classification_result_cpp =
211+
StatusOr<ClassificationResultCpp> cpp_classification_result_status =
192212
classifier->impl->Classify(*std::move(cpp_frame_buffer_status.value()),
193213
cc_roi);
194214

195-
if (!classification_result_cpp.ok()) {
215+
if (!cpp_classification_result_status.ok()) {
196216
::tflite::support::CreateTfLiteSupportErrorWithStatus(
197-
classification_result_cpp.status(), error);
217+
cpp_classification_result_status.status(), error);
198218
return nullptr;
199219
}
200220

201-
return GetClassificationResultCStruct(classification_result_cpp.value());
221+
return GetClassificationResultCStruct(cpp_classification_result_status.value());
202222
}
203223

204224
TfLiteClassificationResult* TfLiteImageClassifierClassify(

0 commit comments

Comments
 (0)