diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2015-03-12 17:48:34 +0100 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2015-03-12 17:48:34 +0100 |
commit | 8dff01d06a7ebd7330e3a1dd1ba47b3c74ee7dfb (patch) | |
tree | 41c9dfbd45676c9e8737a7d8aa4361bbdfb40868 /archival | |
parent | 936c8809caea5705e26e5d7e06ea3895c28fffd8 (diff) | |
download | busybox-w32-8dff01d06a7ebd7330e3a1dd1ba47b3c74ee7dfb.tar.gz busybox-w32-8dff01d06a7ebd7330e3a1dd1ba47b3c74ee7dfb.tar.bz2 busybox-w32-8dff01d06a7ebd7330e3a1dd1ba47b3c74ee7dfb.zip |
libbb: introduce and use is_prefixed_with()
function old new delta
is_prefixed_with - 18 +18
complete_username 78 77 -1
man_main 737 735 -2
fsck_device 429 427 -2
unpack_ar_archive 80 76 -4
strip_unsafe_prefix 105 101 -4
singlemount 1054 1050 -4
rtc_adjtime_is_utc 90 86 -4
resolve_mount_spec 88 84 -4
parse_one_line 1029 1025 -4
parse_conf 1460 1456 -4
may_wakeup 83 79 -4
loadkmap_main 219 215 -4
get_irqs_from_stat 103 99 -4
get_header_cpio 913 909 -4
findfs_main 79 75 -4
fbsplash_main 1230 1226 -4
load_crontab 776 771 -5
expand_vars_to_list 1151 1146 -5
date_main 881 876 -5
skip_dev_pfx 30 24 -6
make_device 2199 2193 -6
complete_cmd_dir_file 773 767 -6
run_applet_and_exit 715 708 -7
uudecode_main 321 313 -8
pwdx_main 197 189 -8
execute 568 560 -8
i2cdetect_main 1186 1176 -10
procps_scan 1242 1230 -12
procps_read_smaps 1017 1005 -12
process_module 746 734 -12
patch_main 1903 1891 -12
nfsmount 3572 3560 -12
stack_machine 126 112 -14
process_timer_stats 449 435 -14
match_fstype 111 97 -14
do_ipaddr 1344 1330 -14
open_list_and_close 359 343 -16
get_header_tar 1795 1779 -16
prepend_new_eth_table 340 323 -17
fsck_main 1811 1794 -17
find_iface_state 56 38 -18
dnsd_main 1321 1303 -18
base_device 179 158 -21
find_keyword 104 82 -22
handle_incoming_and_exit 2785 2762 -23
parse_and_put_prompt 774 746 -28
modinfo 347 317 -30
find_action 204 171 -33
update_passwd 1470 1436 -34
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 0/49 up/down: 18/-540) Total: -522 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'archival')
-rw-r--r-- | archival/libarchive/get_header_cpio.c | 2 | ||||
-rw-r--r-- | archival/libarchive/get_header_tar.c | 6 | ||||
-rw-r--r-- | archival/libarchive/unpack_ar_archive.c | 2 | ||||
-rw-r--r-- | archival/libarchive/unsafe_prefix.c | 2 |
4 files changed, 6 insertions, 6 deletions
diff --git a/archival/libarchive/get_header_cpio.c b/archival/libarchive/get_header_cpio.c index 1a0058b63..7861d1f6f 100644 --- a/archival/libarchive/get_header_cpio.c +++ b/archival/libarchive/get_header_cpio.c | |||
@@ -37,7 +37,7 @@ char FAST_FUNC get_header_cpio(archive_handle_t *archive_handle) | |||
37 | } | 37 | } |
38 | archive_handle->offset += 110; | 38 | archive_handle->offset += 110; |
39 | 39 | ||
40 | if (strncmp(&cpio_header[0], "07070", 5) != 0 | 40 | if (!is_prefixed_with(&cpio_header[0], "07070") |
41 | || (cpio_header[5] != '1' && cpio_header[5] != '2') | 41 | || (cpio_header[5] != '1' && cpio_header[5] != '2') |
42 | ) { | 42 | ) { |
43 | bb_error_msg_and_die("unsupported cpio format, use newc or crc"); | 43 | bb_error_msg_and_die("unsupported cpio format, use newc or crc"); |
diff --git a/archival/libarchive/get_header_tar.c b/archival/libarchive/get_header_tar.c index 0c663fbd7..2dbcdb50c 100644 --- a/archival/libarchive/get_header_tar.c +++ b/archival/libarchive/get_header_tar.c | |||
@@ -105,7 +105,7 @@ static void process_pax_hdr(archive_handle_t *archive_handle, unsigned sz, int g | |||
105 | value = end + 1; | 105 | value = end + 1; |
106 | 106 | ||
107 | #if ENABLE_FEATURE_TAR_GNU_EXTENSIONS | 107 | #if ENABLE_FEATURE_TAR_GNU_EXTENSIONS |
108 | if (!global && strncmp(value, "path=", sizeof("path=") - 1) == 0) { | 108 | if (!global && is_prefixed_with(value, "path=")) { |
109 | value += sizeof("path=") - 1; | 109 | value += sizeof("path=") - 1; |
110 | free(archive_handle->tar__longname); | 110 | free(archive_handle->tar__longname); |
111 | archive_handle->tar__longname = xstrdup(value); | 111 | archive_handle->tar__longname = xstrdup(value); |
@@ -118,7 +118,7 @@ static void process_pax_hdr(archive_handle_t *archive_handle, unsigned sz, int g | |||
118 | * This is what Red Hat's patched version of tar uses. | 118 | * This is what Red Hat's patched version of tar uses. |
119 | */ | 119 | */ |
120 | # define SELINUX_CONTEXT_KEYWORD "RHT.security.selinux" | 120 | # define SELINUX_CONTEXT_KEYWORD "RHT.security.selinux" |
121 | if (strncmp(value, SELINUX_CONTEXT_KEYWORD"=", sizeof(SELINUX_CONTEXT_KEYWORD"=") - 1) == 0) { | 121 | if (is_prefixed_with(value, SELINUX_CONTEXT_KEYWORD"=")) { |
122 | value += sizeof(SELINUX_CONTEXT_KEYWORD"=") - 1; | 122 | value += sizeof(SELINUX_CONTEXT_KEYWORD"=") - 1; |
123 | free(archive_handle->tar__sctx[global]); | 123 | free(archive_handle->tar__sctx[global]); |
124 | archive_handle->tar__sctx[global] = xstrdup(value); | 124 | archive_handle->tar__sctx[global] = xstrdup(value); |
@@ -202,7 +202,7 @@ char FAST_FUNC get_header_tar(archive_handle_t *archive_handle) | |||
202 | 202 | ||
203 | /* Check header has valid magic, "ustar" is for the proper tar, | 203 | /* Check header has valid magic, "ustar" is for the proper tar, |
204 | * five NULs are for the old tar format */ | 204 | * five NULs are for the old tar format */ |
205 | if (strncmp(tar.magic, "ustar", 5) != 0 | 205 | if (!is_prefixed_with(tar.magic, "ustar") |
206 | && (!ENABLE_FEATURE_TAR_OLDGNU_COMPATIBILITY | 206 | && (!ENABLE_FEATURE_TAR_OLDGNU_COMPATIBILITY |
207 | || memcmp(tar.magic, "\0\0\0\0", 5) != 0) | 207 | || memcmp(tar.magic, "\0\0\0\0", 5) != 0) |
208 | ) { | 208 | ) { |
diff --git a/archival/libarchive/unpack_ar_archive.c b/archival/libarchive/unpack_ar_archive.c index 214d17e23..0bc030349 100644 --- a/archival/libarchive/unpack_ar_archive.c +++ b/archival/libarchive/unpack_ar_archive.c | |||
@@ -12,7 +12,7 @@ void FAST_FUNC unpack_ar_archive(archive_handle_t *ar_archive) | |||
12 | char magic[7]; | 12 | char magic[7]; |
13 | 13 | ||
14 | xread(ar_archive->src_fd, magic, AR_MAGIC_LEN); | 14 | xread(ar_archive->src_fd, magic, AR_MAGIC_LEN); |
15 | if (strncmp(magic, AR_MAGIC, AR_MAGIC_LEN) != 0) { | 15 | if (!is_prefixed_with(magic, AR_MAGIC)) { |
16 | bb_error_msg_and_die("invalid ar magic"); | 16 | bb_error_msg_and_die("invalid ar magic"); |
17 | } | 17 | } |
18 | ar_archive->offset += AR_MAGIC_LEN; | 18 | ar_archive->offset += AR_MAGIC_LEN; |
diff --git a/archival/libarchive/unsafe_prefix.c b/archival/libarchive/unsafe_prefix.c index 826c673bf..9994f4d94 100644 --- a/archival/libarchive/unsafe_prefix.c +++ b/archival/libarchive/unsafe_prefix.c | |||
@@ -15,7 +15,7 @@ const char* FAST_FUNC strip_unsafe_prefix(const char *str) | |||
15 | cp++; | 15 | cp++; |
16 | continue; | 16 | continue; |
17 | } | 17 | } |
18 | if (strncmp(cp, "/../"+1, 3) == 0) { | 18 | if (is_prefixed_with(cp, "/../"+1)) { |
19 | cp += 3; | 19 | cp += 3; |
20 | continue; | 20 | continue; |
21 | } | 21 | } |