Deleted Added
full compact
rtld.c (205606) rtld.c (208256)
1/*-
2 * Copyright 1996, 1997, 1998, 1999, 2000 John D. Polstra.
3 * Copyright 2003 Alexander Kabaev <kan@FreeBSD.ORG>.
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:

--- 9 unchanged lines hidden (view full) ---

18 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
19 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
20 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 *
1/*-
2 * Copyright 1996, 1997, 1998, 1999, 2000 John D. Polstra.
3 * Copyright 2003 Alexander Kabaev <kan@FreeBSD.ORG>.
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:

--- 9 unchanged lines hidden (view full) ---

18 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
19 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
20 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 *
26 * $FreeBSD: head/libexec/rtld-elf/rtld.c 205606 2010-03-24 15:59:51Z gahr $
26 * $FreeBSD: head/libexec/rtld-elf/rtld.c 208256 2010-05-18 08:55:23Z rdivacky $
27 */
28
29/*
30 * Dynamic linker for ELF.
31 *
32 * John Polstra <jdp@polstra.com>.
33 */
34

--- 3271 unchanged lines hidden (view full) ---

3306 break;
3307 }
3308 if (!obj) {
3309 _rtld_error("Can't find module with TLS index %d", index);
3310 die();
3311 }
3312
3313 p = malloc(obj->tlssize);
27 */
28
29/*
30 * Dynamic linker for ELF.
31 *
32 * John Polstra <jdp@polstra.com>.
33 */
34

--- 3271 unchanged lines hidden (view full) ---

3306 break;
3307 }
3308 if (!obj) {
3309 _rtld_error("Can't find module with TLS index %d", index);
3310 die();
3311 }
3312
3313 p = malloc(obj->tlssize);
3314 if (p == NULL) {
3315 _rtld_error("Cannot allocate TLS block for index %d", index);
3316 die();
3317 }
3314 memcpy(p, obj->tlsinit, obj->tlsinitsize);
3315 memset(p + obj->tlsinitsize, 0, obj->tlssize - obj->tlsinitsize);
3316
3317 return p;
3318}
3319
3320bool
3321allocate_tls_offset(Obj_Entry *obj)

--- 305 unchanged lines hidden ---
3318 memcpy(p, obj->tlsinit, obj->tlsinitsize);
3319 memset(p + obj->tlsinitsize, 0, obj->tlssize - obj->tlsinitsize);
3320
3321 return p;
3322}
3323
3324bool
3325allocate_tls_offset(Obj_Entry *obj)

--- 305 unchanged lines hidden ---