From 5645fe2d16aa49f611a146c009f562adba066be4 Mon Sep 17 00:00:00 2001 From: Jakub Jelen Date: Thu, 14 Nov 2019 13:06:10 +0100 Subject: [PATCH] muscle: Check length first before calling memcmp() --- src/libopensc/muscle-filesystem.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/libopensc/muscle-filesystem.c b/src/libopensc/muscle-filesystem.c index b18d057c..3bfbaf36 100644 --- a/src/libopensc/muscle-filesystem.c +++ b/src/libopensc/muscle-filesystem.c @@ -147,8 +147,8 @@ int mscfs_lookup_path(mscfs_t* fs, const u8 *path, int pathlen, msc_id* objectId return MSCFS_INVALID_ARGS; if(isDirectory) { /* Directory must be right next to root */ - if((0 == memcmp(path, "\x3F\x00", 2) && pathlen == 4) - || (0 == memcmp(fs->currentPath, "\x3F\x00", 2) && pathlen == 2)) { + if ((pathlen == 4 && 0 == memcmp(path, "\x3F\x00", 2)) || + (pathlen == 2 && 0 == memcmp(fs->currentPath, "\x3F\x00", 2))) { oid[0] = path[pathlen - 2]; oid[1] = path[pathlen - 1]; oid[2] = oid[3] = 0; @@ -169,7 +169,7 @@ int mscfs_lookup_path(mscfs_t* fs, const u8 *path, int pathlen, msc_id* objectId if(pathlen > 4) return MSCFS_INVALID_ARGS; /* Reset to root */ - if(0 == memcmp(path, "\x3F\x00", 2) && pathlen == 2) { + if(pathlen == 2 && 0 == memcmp(path, "\x3F\x00", 2)) { oid[0] = oid[2] = path[0]; oid[1] = oid[3] = path[1]; } else if(pathlen == 2) { /* Path preserved for current-path */