16cb06879323cb45440ca1c7b42a2cc754b3d50c6George Burgess IV/* 26cb06879323cb45440ca1c7b42a2cc754b3d50c6George Burgess IV * Copyright (C) 2017 The Android Open Source Project 36cb06879323cb45440ca1c7b42a2cc754b3d50c6George Burgess IV * All rights reserved. 46cb06879323cb45440ca1c7b42a2cc754b3d50c6George Burgess IV * 56cb06879323cb45440ca1c7b42a2cc754b3d50c6George Burgess IV * Redistribution and use in source and binary forms, with or without 66cb06879323cb45440ca1c7b42a2cc754b3d50c6George Burgess IV * modification, are permitted provided that the following conditions 76cb06879323cb45440ca1c7b42a2cc754b3d50c6George Burgess IV * are met: 86cb06879323cb45440ca1c7b42a2cc754b3d50c6George Burgess IV * * Redistributions of source code must retain the above copyright 96cb06879323cb45440ca1c7b42a2cc754b3d50c6George Burgess IV * notice, this list of conditions and the following disclaimer. 106cb06879323cb45440ca1c7b42a2cc754b3d50c6George Burgess IV * * Redistributions in binary form must reproduce the above copyright 116cb06879323cb45440ca1c7b42a2cc754b3d50c6George Burgess IV * notice, this list of conditions and the following disclaimer in 126cb06879323cb45440ca1c7b42a2cc754b3d50c6George Burgess IV * the documentation and/or other materials provided with the 136cb06879323cb45440ca1c7b42a2cc754b3d50c6George Burgess IV * distribution. 146cb06879323cb45440ca1c7b42a2cc754b3d50c6George Burgess IV * 156cb06879323cb45440ca1c7b42a2cc754b3d50c6George Burgess IV * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 166cb06879323cb45440ca1c7b42a2cc754b3d50c6George Burgess IV * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 176cb06879323cb45440ca1c7b42a2cc754b3d50c6George Burgess IV * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 186cb06879323cb45440ca1c7b42a2cc754b3d50c6George Burgess IV * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 196cb06879323cb45440ca1c7b42a2cc754b3d50c6George Burgess IV * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 206cb06879323cb45440ca1c7b42a2cc754b3d50c6George Burgess IV * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 216cb06879323cb45440ca1c7b42a2cc754b3d50c6George Burgess IV * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS 226cb06879323cb45440ca1c7b42a2cc754b3d50c6George Burgess IV * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 236cb06879323cb45440ca1c7b42a2cc754b3d50c6George Burgess IV * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 246cb06879323cb45440ca1c7b42a2cc754b3d50c6George Burgess IV * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 256cb06879323cb45440ca1c7b42a2cc754b3d50c6George Burgess IV * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 266cb06879323cb45440ca1c7b42a2cc754b3d50c6George Burgess IV * SUCH DAMAGE. 276cb06879323cb45440ca1c7b42a2cc754b3d50c6George Burgess IV */ 286cb06879323cb45440ca1c7b42a2cc754b3d50c6George Burgess IV 296cb06879323cb45440ca1c7b42a2cc754b3d50c6George Burgess IV#include <private/bionic_asm.h> 306cb06879323cb45440ca1c7b42a2cc754b3d50c6George Burgess IV 316cb06879323cb45440ca1c7b42a2cc754b3d50c6George Burgess IVENTRY(__memcpy_chk) 326cb06879323cb45440ca1c7b42a2cc754b3d50c6George Burgess IV cmp x2, x3 336cb06879323cb45440ca1c7b42a2cc754b3d50c6George Burgess IV bls memcpy 346cb06879323cb45440ca1c7b42a2cc754b3d50c6George Burgess IV 356cb06879323cb45440ca1c7b42a2cc754b3d50c6George Burgess IV // Preserve for accurate backtrace. 366cb06879323cb45440ca1c7b42a2cc754b3d50c6George Burgess IV stp x29, x30, [sp, -16]! 376cb06879323cb45440ca1c7b42a2cc754b3d50c6George Burgess IV .cfi_def_cfa_offset 16 386cb06879323cb45440ca1c7b42a2cc754b3d50c6George Burgess IV .cfi_rel_offset x29, 0 396cb06879323cb45440ca1c7b42a2cc754b3d50c6George Burgess IV .cfi_rel_offset x30, 8 406cb06879323cb45440ca1c7b42a2cc754b3d50c6George Burgess IV 416cb06879323cb45440ca1c7b42a2cc754b3d50c6George Burgess IV bl __memcpy_chk_fail 426cb06879323cb45440ca1c7b42a2cc754b3d50c6George Burgess IVEND(__memcpy_chk) 43