Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c0048178 authored by Marco Nelissen's avatar Marco Nelissen Committed by Gerrit Code Review
Browse files

Merge "Avoid invalid memory access when using extractMetadata()"

parents ceb83b8d d01c1481
Loading
Loading
Loading
Loading
+16 −1
Original line number Original line Diff line number Diff line
@@ -20,6 +20,7 @@
#include <binder/Parcel.h>
#include <binder/Parcel.h>
#include <media/IMediaMetadataRetriever.h>
#include <media/IMediaMetadataRetriever.h>
#include <utils/String8.h>
#include <utils/String8.h>
#include <utils/KeyedVector.h>


// The binder is supposed to propagate the scheduler group across
// The binder is supposed to propagate the scheduler group across
// the binder interface so that remote calls are executed with
// the binder interface so that remote calls are executed with
@@ -161,8 +162,22 @@ public:
        if (ret != NO_ERROR) {
        if (ret != NO_ERROR) {
            return NULL;
            return NULL;
        }
        }
        return reply.readCString();
        const char* str = reply.readCString();
        if (str != NULL) {
            String8 value(str);
            if (mMetadata.indexOfKey(keyCode) < 0) {
                mMetadata.add(keyCode, value);
            } else {
                mMetadata.replaceValueFor(keyCode, value);
            }
            return mMetadata.valueFor(keyCode).string();
        } else {
            return NULL;
        }
    }
    }

private:
    KeyedVector<int, String8> mMetadata;
};
};


IMPLEMENT_META_INTERFACE(MediaMetadataRetriever, "android.media.IMediaMetadataRetriever");
IMPLEMENT_META_INTERFACE(MediaMetadataRetriever, "android.media.IMediaMetadataRetriever");