| /** |
| * Copyright (C) 2020 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| #include "../includes/omxUtils.h" |
| #include "../includes/common.h" |
| #include "../includes/memutils_track.h" |
| #include "omx/include/media/stagefright/omx/1.0/Omx.h" |
| #include "codecs/mp3dec/src/s_tmp3dec_file.h" |
| #include "media/omx/1.0/WOmx.h" |
| |
| char enable_selective_overload = ENABLE_NONE; |
| bool is_tracking_required(size_t size) { |
| return (size == sizeof(tmp3dec_file)); |
| } |
| |
| int main() { |
| |
| #if _32_BIT |
| android::ProcessState::self()->startThreadPool(); |
| using namespace ::android::hardware::media::omx::V1_0; |
| sp < IOmx > omx = new implementation::Omx(); |
| if (!omx) { |
| return EXIT_FAILURE; |
| } |
| sp < IOMX > mOMX = new utils::LWOmx(omx); |
| if (!mOMX) { |
| return EXIT_FAILURE; |
| } |
| sp < IOMXNode > mOMXNode = nullptr; |
| enable_selective_overload = ENABLE_MALLOC_CHECK; |
| mOMX->allocateNode("OMX.google.mp3.decoder", NULL, &mOMXNode); |
| enable_selective_overload = ENABLE_NONE; |
| if (is_memory_uninitialized()) { |
| return EXIT_VULNERABLE; |
| } |
| #endif /* _32_BIT */ |
| |
| return EXIT_SUCCESS; |
| } |