return ((int64_t) now.tv_sec * 1000 + (int64_t) now.tv_usec / 1000);
}
-static enum pass_state is_pmqos_locked(char *data, char *name)
-{
- char *unlock = NULL;
-
- if (!data)
- return PASS_OFF;
-
- unlock = strstr(data, PASS_UNLOCK);
- if (!unlock) {
- /* Lock scenario */
- strncpy(name, data, strlen(data) - strlen(PASS_LOCK));
- return PASS_ON;
- } else {
- /* Unlock scenario */
- strncpy(name, data, strlen(data) - strlen(PASS_UNLOCK));
- return PASS_OFF;
- }
-}
-
static int find_scenario_index(struct pass_pmqos *pmqos, char *name)
{
int index;
if (pmqos->state != PASS_ON || !pmqos->scenarios)
return 0;
- /*
- * Parse scenario name(data) whether to include 'Lock' or 'Unlock'
- * string and divide correct scenario name.
- */
- locked = is_pmqos_locked(data, name);
+ if (data) {
+ /*
+ * Parse scenario name whether to include 'Lock' or 'Unlock'
+ * string and divide correct scenario name.
+ */
+ char *end;
+
+ strncpy(name, data, sizeof(name) - 1);
+ name[sizeof(name) - 1] = '\0';
+ end = strstr(name, PASS_UNLOCK);
+ if (!end) {
+ /* Lock scenario */
+ locked = PASS_ON;
+ end = strstr(name, PASS_LOCK);
+ } else {
+ /* Unlock scenario */
+ locked = PASS_OFF;
+ }
+ if (end)
+ *end = '\0';
+ } else {
+ locked = PASS_OFF;
+ }
+
index = find_scenario_index(pmqos, name);
if (index < 0) {
_W("Unknown scenario (%s) for '%s' resource\n",