/* Copyright (c) 2011 The Chromium OS Authors. All rights reserved. * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. * * Utility functions that need to be built as part of the firmware. */ #include "sysincludes.h" #include "utility.h" int SafeMemcmp(const void* s1, const void* s2, size_t n) { const unsigned char* us1 = s1; const unsigned char* us2 = s2; int result = 0; if (0 == n) return 0; /* Code snippet without data-dependent branch due to * Nate Lawson (nate@root.org) of Root Labs. */ while (n--) result |= *us1++ ^ *us2++; return result != 0; }