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

Commit 11e60d7a authored by Andy Hung's avatar Andy Hung
Browse files

MediaMetricsService: Validate logSessionId

Suppress malformed user supplied data (returns empty
id instead).

Test: atest AudioTrackTest#testSetLogSessionId
Test: atest AudioRecordTest#testSetLogSessionId
Test: atest MediaRecorderTest#testSetGetLogSessionId
Test: atest MediaDrmTest#testPlaybackComponent
Bug: 193164585
Change-Id: I56cab989d8223959762a5978192b0f41751ad01c
parent 6c14e31d
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -34,6 +34,7 @@

#include "cleaner.h"
#include "MediaMetricsService.h"
#include "StringUtils.h"
#include "frameworks/proto_logging/stats/message/mediametrics_message.pb.h"
#include "iface_statsd.h"

@@ -227,6 +228,7 @@ bool statsd_codec(const std::shared_ptr<const mediametrics::Item>& item,

    std::string sessionId;
    if (item->getString("android.media.mediacodec.log-session-id", &sessionId)) {
        sessionId = mediametrics::stringutils::sanitizeLogSessionId(sessionId);
        metrics_proto.set_log_session_id(sessionId);
    }
    AStatsEvent_writeString(event, codec.c_str());
+2 −0
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@
#include <statslog.h>

#include "MediaMetricsService.h"
#include "StringUtils.h"
#include "frameworks/proto_logging/stats/message/mediametrics_message.pb.h"
#include "iface_statsd.h"

@@ -85,6 +86,7 @@ bool statsd_extractor(const std::shared_ptr<const mediametrics::Item>& item,

    std::string log_session_id;
    if (item->getString("android.media.mediaextractor.logSessionId", &log_session_id)) {
        log_session_id = mediametrics::stringutils::sanitizeLogSessionId(log_session_id);
        metrics_proto.set_log_session_id(log_session_id);
    }

+2 −0
Original line number Diff line number Diff line
@@ -31,6 +31,7 @@
#include <statslog.h>

#include "MediaMetricsService.h"
#include "StringUtils.h"
#include "frameworks/proto_logging/stats/enums/stats/mediametrics/mediametrics.pb.h"
#include "iface_statsd.h"

@@ -80,6 +81,7 @@ bool statsd_mediaparser(const std::shared_ptr<const mediametrics::Item>& item,

    std::string logSessionId;
    item->getString("android.media.mediaparser.logSessionId", &logSessionId);
    logSessionId = mediametrics::stringutils::sanitizeLogSessionId(logSessionId);

    int result = android::util::stats_write(android::util::MEDIAMETRICS_MEDIAPARSER_REPORTED,
                               timestamp_nanos,
+2 −0
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@
#include <statslog.h>

#include "MediaMetricsService.h"
#include "StringUtils.h"
#include "frameworks/proto_logging/stats/message/mediametrics_message.pb.h"
#include "iface_statsd.h"

@@ -58,6 +59,7 @@ bool statsd_recorder(const std::shared_ptr<const mediametrics::Item>& item,
    // string kRecorderLogSessionId = "android.media.mediarecorder.log-session-id";
    std::string log_session_id;
    if (item->getString("android.media.mediarecorder.log-session-id", &log_session_id)) {
        log_session_id = mediametrics::stringutils::sanitizeLogSessionId(log_session_id);
        metrics_proto.set_log_session_id(log_session_id);
    }
    // string kRecorderAudioMime = "android.media.mediarecorder.audio.mime";