aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* httpd: fix handling of range requests1_24_stableGravatar Denys Vlasenko2017-09-181-1/+1
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* hush: fix a bug with "stdio rewind on exit". Closes 9186Gravatar Denys Vlasenko2016-08-193-21/+48
| | | | | | | | | | | | | | | | | | | | | | | | With FEATURE_SH_STANDALONE=y, run this in a "sh SCRIPT": sha256sum /dev/null echo END sha256sum is a NOEXEC applet. It runs in a forked child. Then child exit()s. By this time, entire script is read, and buffered in a FILE object from fopen("SCRIPT"). But fgetc() did not consume entire input. exit() lseeks back by -9 bytes, from <eof> to 'e' in 'echo'. (this may be libc-specific). This change of fd position *is shared with the parent*! Now parent can read more, and it thinks there is another "echo END". End result: two "echo END"s are run. `cmd` and arithmetic also need the fix for this, even without FEATURE_SH_STANDALONE. Fix this by _exit()ing instead. Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* ash_test: ignore generated filesGravatar Mike Frysinger2016-03-221-0/+7
| | | | | Signed-off-by: Mike Frysinger <vapier@gentoo.org> (cherry picked from commit b9b7aa1910907f59f1130667fbe7b870087e97f8)
* ash: simplify EOF/newline handling in list parserGravatar Ron Yorston2016-03-221-34/+29
| | | | | | | | | | | | | | | | | Processing of here documents in ash has had a couple of breakages which are now the subject of tests. This commit should fix both. It is based on the following commit in dash git by Herbert Xu: <7c245aa> [PARSER] Simplify EOF/newline handling in list parser (See git://git.kernel.org/pub/scm/utils/dash/dash.git) Reported-by: Natanael Copa <ncopa@alpinelinux.org> Signed-off-by: Ron Yorston <rmy@pobox.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org> (cherry picked from commit c0e007663d30f83b0e5e074db34dcffaa8915e99)
* Revert "ash: fix a SEGV case in an invalid heredoc" xxxGravatar Ron Yorston2016-03-221-11/+4
| | | | | | | | | | | This reverts commit 7e66102f762a7d80715f0c7e5925433256b78cee but leaves the test in place as it's still valid. Reported-by: Natanael Copa <ncopa@alpinelinux.org> Signed-off-by: Ron Yorston <rmy@pobox.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org> (cherry picked from commit 6bd2fabc52fa76b69a65772878e2e745c0fff3ff)
* ash: add test for issue with here documentGravatar Ron Yorston2016-03-222-0/+9
| | | | | | | | | | | | | | | | | | This used to work but doesn't now: foo () { cat <<EOF && { echo "$1" ; } $1 EOF } foo "bar" Reported-by: Natanael Copa <ncopa@alpinelinux.org> Signed-off-by: Ron Yorston <rmy@pobox.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org> (cherry picked from commit 9121510dc659baf6664456796c195460468c850b)
* ash: fix corruption of ${#var} if $var contains UTF-8 charactersGravatar Ron Yorston2016-03-223-0/+5
| | | | | | | | | | | | | | | | | | | | | | | As reported in bug 8506: $ X=abcdÉfghÍjklmnÓpqrstÚvwcyz $ echo ${#X} abcd26 The result should be 26. This regression was introduced by: <d68d1fb> 2015-05-18 [Ron Yorston] ash: code shrink around varvalue The length in characters was being used to discard the contents of the variable instead of the length in bytes. URL: https://bugs.busybox.net/8506 Reported-by: Martijn Dekker <martijn@inlv.org> Signed-off-by: Ron Yorston <rmy@pobox.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org> (cherry picked from commit 3e3bfb896e0dd8a54caad9c6264e2452566b4012)
* ash: fix error during recursive processing of here documentGravatar Ron Yorston2016-03-213-2/+13
| | | | | | | | | | | | | | | | | | Save the value of the checkkwd flag to prevent it being clobbered during recursion. Based on commit ec2c84d from git://git.kernel.org/pub/scm/utils/dash/dash.git by Herbert Xu. function old new delta readtoken 190 203 +13 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/0 up/down: 13/0) Total: 13 bytes Signed-off-by: Ron Yorston <rmy@pobox.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org> (cherry picked from commit 713f07d906d9171953be0c12e2369869855b6ca6)
* udhcp: fix a SEGV on malformed RFC1035-encoded domain nameGravatar Denys Vlasenko2016-03-211-4/+9
| | | | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org> (cherry picked from commit d474ffc68290e0a83651c4432eeabfa62cd51e87)
* udhcpc: fix OPTION_6RD parsing (could overflow its malloced buffer)Gravatar Denys Vlasenko2016-03-212-4/+15
| | | | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org> (cherry picked from commit 352f79acbd759c14399e39baef21fc4ffe180ac2)
* Bump version to 1.24.21_24_2Gravatar Denys Vlasenko2016-03-171-1/+1
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* scripts/trylink: fix static build with glibc again. Closes 8471Gravatar Denys Vlasenko2016-03-171-1/+1
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* truncate: always set mode when opening file to avoid fortify errorsGravatar Ari Sundholm2016-01-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Busybox crashes due to no mode being given when opening: $ ./busybox truncate -s 1M foo *** invalid open64 call: O_CREAT without mode ***: ./busybox terminated ======= Backtrace: ========= /lib/x86_64-linux-gnu/libc.so.6(+0x7338f)[0x7f66d921338f] /lib/x86_64-linux-gnu/libc.so.6(__fortify_fail+0x5c)[0x7f66d92aac9c] /lib/x86_64-linux-gnu/libc.so.6(+0xeb6aa)[0x7f66d928b6aa] ./busybox[0x4899f9] ======= Memory map: ======== 00400000-004d0000 r-xp 00000000 00:1a 137559 /home/ari/busybox/busybox 006cf000-006d0000 r--p 000cf000 00:1a 137559 /home/ari/busybox/busybox 006d0000-006d1000 rw-p 000d0000 00:1a 137559 /home/ari/busybox/busybox 006d1000-006d4000 rw-p 00000000 00:00 0 014e7000-01508000 rw-p 00000000 00:00 0 [heap] 7f66d8f8a000-7f66d8fa0000 r-xp 00000000 08:07 1579008 /lib/x86_64-linux-gnu/libgcc_s.so.1 7f66d8fa0000-7f66d919f000 ---p 00016000 08:07 1579008 /lib/x86_64-linux-gnu/libgcc_s.so.1 7f66d919f000-7f66d91a0000 rw-p 00015000 08:07 1579008 /lib/x86_64-linux-gnu/libgcc_s.so.1 7f66d91a0000-7f66d935b000 r-xp 00000000 08:07 1578994 /lib/x86_64-linux-gnu/libc-2.19.so 7f66d935b000-7f66d955a000 ---p 001bb000 08:07 1578994 /lib/x86_64-linux-gnu/libc-2.19.so 7f66d955a000-7f66d955e000 r--p 001ba000 08:07 1578994 /lib/x86_64-linux-gnu/libc-2.19.so 7f66d955e000-7f66d9560000 rw-p 001be000 08:07 1578994 /lib/x86_64-linux-gnu/libc-2.19.so 7f66d9560000-7f66d9565000 rw-p 00000000 00:00 0 7f66d9565000-7f66d966a000 r-xp 00000000 08:07 1579020 /lib/x86_64-linux-gnu/libm-2.19.so 7f66d966a000-7f66d9869000 ---p 00105000 08:07 1579020 /lib/x86_64-linux-gnu/libm-2.19.so 7f66d9869000-7f66d986a000 r--p 00104000 08:07 1579020 /lib/x86_64-linux-gnu/libm-2.19.so 7f66d986a000-7f66d986b000 rw-p 00105000 08:07 1579020 /lib/x86_64-linux-gnu/libm-2.19.so 7f66d986b000-7f66d988e000 r-xp 00000000 08:07 1578981 /lib/x86_64-linux-gnu/ld-2.19.so 7f66d9a64000-7f66d9a67000 rw-p 00000000 00:00 0 7f66d9a8a000-7f66d9a8d000 rw-p 00000000 00:00 0 7f66d9a8d000-7f66d9a8e000 r--p 00022000 08:07 1578981 /lib/x86_64-linux-gnu/ld-2.19.so 7f66d9a8e000-7f66d9a8f000 rw-p 00023000 08:07 1578981 /lib/x86_64-linux-gnu/ld-2.19.so 7f66d9a8f000-7f66d9a90000 rw-p 00000000 00:00 0 7ffc47761000-7ffc47782000 rw-p 00000000 00:00 0 [stack] 7ffc477ab000-7ffc477ad000 r-xp 00000000 00:00 0 [vdso] ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall] Aborted (core dumped) $ Fix this by simply always setting the mode, as it doesn't hurt even when O_CREAT is not specified. This bug is a regression introduced in fc3e40e, as xopen(), which was originally used, would automatically set the mode. Signed-off-by: Ari Sundholm <ari@tuxera.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org> (cherry picked from commit e111a1640494fe87fc913f94fae3bb805de0fc99)
* [g]unzip: fix recent breakage.Gravatar Denys Vlasenko2015-12-022-12/+22
| | | | | | | | Also, do emit error message we so painstakingly pass from gzip internals Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com> (cherry picked from commit 6bd3fff51aa74e2ee2d87887b12182a3b09792ef) Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* unzip: test for bad archive SEGVingGravatar Denys Vlasenko2015-12-012-5/+29
| | | | | | | | | function old new delta huft_build 1296 1300 +4 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com> (cherry picked from commit 1de25a6e87e0e627aa34298105a3d17c60a1f44e) Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* Apply post-1.24.0 patches, bump version to 1.24.11_24_1Gravatar Denys Vlasenko2015-10-246-37/+122
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* Bump version to 1.24.01_24_0Gravatar Denys Vlasenko2015-10-121-1/+1
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* libpwdgrp: do not require that /etc/passwd entries have nonempty home and shellGravatar Denys Vlasenko2015-10-121-1/+1
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* randconfig fixesGravatar Denys Vlasenko2015-10-121-2/+2
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* build system: remove special-casing for extra libsGravatar Denys Vlasenko2015-10-122-22/+11
| | | | | | It is not reliable (tried on three systems, multiple problems). Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* randconfig fixesGravatar Denys Vlasenko2015-10-111-1/+1
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* hush: code shrinkGravatar Denys Vlasenko2015-10-111-4/+1
| | | | | | | function old new delta builtin_wait 347 328 -19 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* randconfig fixGravatar Denys Vlasenko2015-10-111-1/+2
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* randconfig fixesGravatar Denys Vlasenko2015-10-114-10/+26
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* ash: shrink umask codeGravatar Denys Vlasenko2015-10-101-9/+7
| | | | | | | function old new delta umaskcmd 258 248 -10 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* use auto_string() where appropriate to kill a few staticsGravatar Denys Vlasenko2015-10-094-40/+18
| | | | | | | | | | | | | | | | | | | | Custom linker script 'busybox_ldscript' found, using it function old new delta static.str 4 - -4 static.passwd 4 0 -4 bb_ask 322 311 -11 ether_print 63 47 -16 UNSPEC_print 82 66 -16 INET_sprint 59 38 -21 INET6_sprint 54 30 -24 make_human_readable_str 292 235 -57 ------------------------------------------------------------------------------ (add/remove: 0/1 grow/shrink: 0/7 up/down: 0/-153) Total: -153 bytes text data bss dec hex filename 939880 992 17480 958352 e9f90 busybox_old 939736 992 17456 958184 e9ee8 busybox_unstripped Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* libbb: auto_string() for efficient handling of temporary malloced stirngsGravatar Denys Vlasenko2015-10-095-16/+33
| | | | | | | | | | | | | | | | | | | | | | | Use it in libiproute: get rid of one static string buffer. function old new delta auto_string - 51 +51 ll_index_to_name 10 49 +39 buffer_fill_and_print 169 178 +9 scan_recursive 378 380 +2 decode_one_format 732 734 +2 cmdputs 334 332 -2 static.cur_saved 4 1 -3 static.nbuf 16 - -16 printable_string 94 57 -37 ll_idx_n2a 53 - -53 ------------------------------------------------------------------------------ (add/remove: 2/2 grow/shrink: 4/3 up/down: 103/-111) Total: -8 bytes text data bss dec hex filename 939880 992 17496 958368 e9fa0 busybox_old 939880 992 17480 958352 e9f90 busybox_unstripped Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* remove global "jmp_buf die_jmp" from !FEATURE_PREFER_APPLETS buildsGravatar Denys Vlasenko2015-10-097-61/+61
| | | | | | | | | | | | | | | | | | | | | function old new delta xfunc_has_died - 21 +21 sleep_much - 12 +12 sleep10 - 9 +9 die_func - 4 +4 fflush_stdout_and_exit 35 36 +1 builtin_type 121 119 -2 die_sleep 4 - -4 xfunc_die 60 24 -36 hush_main 1128 1011 -117 die_jmp 156 - -156 ------------------------------------------------------------------------------ (add/remove: 4/2 grow/shrink: 1/3 up/down: 47/-315) Total: -268 bytes text data bss dec hex filename 939992 992 17652 958636 ea0ac busybox_old 939880 992 17496 958368 e9fa0 busybox_unstripped Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* ash: "you have mail" should ignore first change in mtimeGravatar Denys Vlasenko2015-10-091-1/+2
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* ash: simplify "you have mail" codeGravatar Denys Vlasenko2015-10-091-14/+11
| | | | | | | | | | | | function old new delta mailtime_hash - 4 +4 redirect 1282 1280 -2 mailtime 40 - -40 cmdloop 429 378 -51 ------------------------------------------------------------------------------ (add/remove: 1/1 grow/shrink: 0/2 up/down: 4/-93) Total: -89 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* ash: make dowait() a bit more readable. Logic is unchangedGravatar Denys Vlasenko2015-10-091-31/+27
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* updated android_ndk_defconfigGravatar Denys Vlasenko2015-10-081-69/+112
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* udhcpc: fix for some Android toolchain breakageGravatar Denys Vlasenko2015-10-081-0/+14
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* iproute: more string reuseGravatar Denys Vlasenko2015-10-081-6/+9
| | | | | | | | text data bss dec hex filename 936892 932 17676 955500 e946c busybox_old 936843 932 17676 955451 e943b busybox_unstripped Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* iproute: don't hardcode the path to config filesGravatar Christoph J. Thompson2015-10-082-5/+14
| | | | | | | | Allows using an alternate path for config files. Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com> Signed-off-by: Christoph J. Thompson <cjsthompson@gmail.com> Signed-off-by: Michael Bestas <mikeioannina@gmail.com>
* ip: increased max ID for /etc/iproute2/rt_tables to 1023Gravatar Denys Vlasenko2015-10-081-10/+19
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* libiproute: use itoa() where appropriateGravatar Denys Vlasenko2015-10-089-61/+37
| | | | | | | | | | | | | | | | | | | | | | function old new delta rtnl_rtprot_a2n 31 88 +57 print_tunnel 647 640 -7 print_route 1865 1858 -7 print_linkinfo 820 812 -8 print_addrinfo 1241 1227 -14 rtnl_rttable_n2a 53 38 -15 rtnl_rtscope_n2a 53 38 -15 rtnl_rtrealm_n2a 53 38 -15 rtnl_dsfield_n2a 61 38 -23 rtnl_rtntype_n2a 118 89 -29 print_rule 724 689 -35 ipaddr_list_or_flush 1293 1253 -40 rtnl_rtprot_n2a 53 - -53 rtnl_rtprot_initialize 63 - -63 ------------------------------------------------------------------------------ (add/remove: 0/2 grow/shrink: 1/11 up/down: 57/-324) Total: -267 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* join some common strings, -400 bytesGravatar Denys Vlasenko2015-10-0811-45/+45
| | | | | | | | | | | | | | | function old new delta print_intel_cstates 499 511 +12 file_insert 355 364 +9 dpkg_main 2944 2940 -4 ifenslave_main 645 640 -5 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 2/2 up/down: 21/-9) Total: 12 bytes text data bss dec hex filename 937564 932 17676 956172 e970c busybox_old 937164 932 17676 955772 e957c busybox_unstripped Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* build system: -fno-builtin-printfGravatar Denys Vlasenko2015-10-0724-124/+127
| | | | | | | | | | | | | | | | | | | | | | | | | | Benefits are: drops reference to out-of-line putchar(), fixes a few cases of failed string merge. function old new delta i2cdump_main 1488 1502 +14 sha256_process_block64 423 433 +10 sendmail_main 1183 1185 +2 list_table 1114 1116 +2 i2cdetect_main 1235 1237 +2 fdisk_main 2852 2854 +2 builtin_type 119 121 +2 unicode_conv_to_printable2 325 324 -1 scan_recursive 380 378 -2 mkfs_minix_main 2687 2684 -3 buffer_fill_and_print 178 169 -9 putchar 152 - -152 ------------------------------------------------------------------------------ (add/remove: 0/2 grow/shrink: 7/4 up/down: 34/-167) Total: -133 bytes text data bss dec hex filename 937788 932 17676 956396 e97ec busybox_old 937564 932 17676 956172 e970c busybox_unstripped Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* find: support "find . -delete" idiom - do not try rmdir(".")Gravatar Denys Vlasenko2015-10-071-1/+4
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* md5sum: code shrinkGravatar Denys Vlasenko2015-10-071-10/+6
| | | | | | | | | | | | For CONFIG_MD5_SMALL=1: function old new delta md5_process_block64 925 881 -44 For CONFIG_MD5_SMALL=0: function old new delta md5_process_block64 1603 1586 -17 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* ash: use a more typical form of "print four octal digits" formatGravatar Denys Vlasenko2015-10-071-1/+1
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* libbb: more compact API for bb_parse_mode()Gravatar Denys Vlasenko2015-10-0710-22/+26
| | | | | | | | | | | | | | | | | function old new delta make_device 2182 2188 +6 parse_command 1440 1443 +3 parse_params 1497 1499 +2 install_main 773 769 -4 mkdir_main 168 160 -8 getoptscmd 641 632 -9 builtin_umask 158 147 -11 bb_parse_mode 431 410 -21 umaskcmd 286 258 -28 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 3/6 up/down: 11/-81) Total: -70 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* ash: shrink "umask -S" codeGravatar Denys Vlasenko2015-10-071-17/+14
| | | | | | | | | function old new delta umaskcmd 279 286 +7 static.permmode 3 - -3 static.permmask 18 - -18 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* hush: fix umask: umask(022) was setting umask(755)Gravatar Denys Vlasenko2015-10-072-25/+21
| | | | | | | | | | Based on the patch by Rich Felker <dalias@libc.org> function old new delta builtin_umask 121 161 +40 umaskcmd 318 279 -39 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* ash: a bunch of trivial simplificationsGravatar Denys Vlasenko2015-10-071-35/+37
| | | | | | | | | | | | | | | | | | | | | | | | | Also, in a few places made code more reliable wrt large sizeof(int) and sizeof(arith_t).. function old new delta sprint_status48 - 143 +143 newline_and_flush - 56 +56 showjob 365 382 +17 parse_command 1440 1443 +3 cmdputs 334 332 -2 cmdloop 434 429 -5 showjobs 70 64 -6 fg_bgcmd 296 290 -6 ash_vmsg 159 153 -6 ash_main 1487 1481 -6 jobscmd 94 82 -12 getoptscmd 687 632 -55 outcslow 56 - -56 sprint_status 156 - -156 ------------------------------------------------------------------------------ (add/remove: 2/2 grow/shrink: 2/8 up/down: 219/-310) Total: -91 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* wget: make it possible to have both SSL helpers configuredGravatar Denys Vlasenko2015-10-071-23/+53
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* ifplugd: discovered why it needed net/ethernet.h: just for ETH_ALENGravatar Denys Vlasenko2015-10-071-0/+4
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* ssl_helper: tweaks discovered while building 32-bit versionGravatar Denys Vlasenko2015-10-073-4/+10
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* wget: make openssl/ssl_helper choice configurableGravatar Denys Vlasenko2015-10-078-54/+623
| | | | | | I got sick of not being able to wget a https file... Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>