/* Copyright (c) 2013 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; }