diff --git a/cmds/installd/commands.c b/cmds/installd/commands.c index 669f403e6..a86abe1b7 100644 --- a/cmds/installd/commands.c +++ b/cmds/installd/commands.c @@ -685,9 +685,13 @@ int dexopt(const char *apk_path, uid_t uid, int is_public, /* Before anything else: is there a .odex file? If so, we have * precompiled the apk and there is nothing to do here. */ - sprintf(out_path, "%s%s", apk_path, ".odex"); - if (stat(out_path, &dex_stat) == 0) { - return 0; + strcpy(out_path, apk_path); + end = strrchr(out_path, '.'); + if (end != NULL) { + strcpy(end, ".odex"); + if (stat(out_path, &dex_stat) == 0) { + return 0; + } } if (create_cache_path(out_path, apk_path)) {