| 1 | /* |
1 | /* |
| 2 | * Copyright 2003-2006 Gentoo Foundation |
2 | * Copyright 2003-2006 Gentoo Foundation |
| 3 | * Distributed under the terms of the GNU General Public License v2 |
3 | * Distributed under the terms of the GNU General Public License v2 |
| 4 | * $Header: /var/cvsroot/gentoo-projects/pax-utils/scanelf.c,v 1.167 2007/01/08 07:55:11 vapier Exp $ |
4 | * $Header: /var/cvsroot/gentoo-projects/pax-utils/scanelf.c,v 1.168 2007/01/08 22:57:01 vapier Exp $ |
| 5 | * |
5 | * |
| 6 | * Copyright 2003-2006 Ned Ludd - <solar@gentoo.org> |
6 | * Copyright 2003-2006 Ned Ludd - <solar@gentoo.org> |
| 7 | * Copyright 2004-2006 Mike Frysinger - <vapier@gentoo.org> |
7 | * Copyright 2004-2006 Mike Frysinger - <vapier@gentoo.org> |
| 8 | */ |
8 | */ |
| 9 | |
9 | |
| 10 | #include "paxinc.h" |
10 | #include "paxinc.h" |
| 11 | |
11 | |
| 12 | static const char *rcsid = "$Id: scanelf.c,v 1.167 2007/01/08 07:55:11 vapier Exp $"; |
12 | static const char *rcsid = "$Id: scanelf.c,v 1.168 2007/01/08 22:57:01 vapier Exp $"; |
| 13 | #define argv0 "scanelf" |
13 | #define argv0 "scanelf" |
| 14 | |
14 | |
| 15 | #define IS_MODIFIER(c) (c == '%' || c == '#' || c == '+') |
15 | #define IS_MODIFIER(c) (c == '%' || c == '#' || c == '+') |
| 16 | |
16 | |
| 17 | /* prototypes */ |
17 | /* prototypes */ |
| … | |
… | |
| 416 | syslen = sizeof(sysfmt) + strlen(elf->filename) + 3 * sizeof(unsigned long) + 1; \ |
416 | syslen = sizeof(sysfmt) + strlen(elf->filename) + 3 * sizeof(unsigned long) + 1; \ |
| 417 | sysbuf = xmalloc(syslen); \ |
417 | sysbuf = xmalloc(syslen); \ |
| 418 | if (sysbuf) { \ |
418 | if (sysbuf) { \ |
| 419 | snprintf(sysbuf, syslen, sysfmt, \ |
419 | snprintf(sysbuf, syslen, sysfmt, \ |
| 420 | (unsigned long)offset_tmp, \ |
420 | (unsigned long)offset_tmp, \ |
| 421 | offset_tmp + EGET(func->st_size), \ |
421 | (unsigned long)(offset_tmp + EGET(func->st_size)), \ |
| 422 | elf->filename, \ |
422 | elf->filename, \ |
| 423 | (unsigned long)r_offset); \ |
423 | (unsigned long)r_offset); \ |
|
|
424 | fflush(stdout); \ |
| 424 | system(sysbuf); \ |
425 | system(sysbuf); \ |
|
|
426 | fflush(stdout); \ |
| 425 | free(sysbuf); \ |
427 | free(sysbuf); \ |
| 426 | } \ |
428 | } \ |
| 427 | } \ |
429 | } \ |
| 428 | } \ |
430 | } \ |
| 429 | } } |
431 | } } |