Denys Vlasenko
9472e8a86f
ftpd: change_identity() must be after chroot()
...
Otherwise chroot() doesn't work for non-root
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2015-03-31 21:46:26 +02:00
Denys Vlasenko
64b744997e
ftpd: prevent zombies. closes 7832
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2015-01-26 15:45:48 +01:00
Denys Vlasenko
7666fa1d02
ftpd: make LIST command show dotfiles too
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2014-09-15 23:35:58 +02:00
Morten Kvistgaard
feac9b607d
ftpd: add optional support for authentication
...
function old new delta
cmdio_get_cmd_and_arg - 237 +237
get_passwd - 97 +97
check_password - 82 +82
ftpd_main 2297 2178 -119
ask_and_check_password_extended 206 84 -122
------------------------------------------------------------------------------
(add/remove: 3/0 grow/shrink: 0/2 up/down: 416/-241) Total: 175 bytes
Signed-off-by: Morten Kvistgaard <MK@pch-engineering.dk>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2014-08-05 21:57:18 +02:00
Denys Vlasenko
9d7cbdeee3
ftpd: do not use root_fd if we are not in chroot
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2014-06-27 13:53:35 +02:00
Denys Vlasenko
27c290f7f2
ftpd: for LIST, open current directory *in the child*
...
Last change introduced an open fd leak. This is the fix.
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2014-06-27 12:37:00 +02:00
Denys Vlasenko
a6ae999b3b
ftpd: escape chroot prior to re-executing ls helper
...
When we merely chdir to saved "real" root fd,
exec("proc/self/exe") works for static executables but not
for dynamic ones (they can't find their interpreter).
With this patch, we also *chroot* to real root.
As a bonus, this gives us proper usernames, timezone conversion
etc.
function old new delta
popen_ls 203 259 +56
ftpd_main 2362 2366 +4
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2014-06-27 12:24:39 +02:00
Denys Vlasenko
0b0ccd4570
ftpd: optimize writes of LIST results a bit
...
function old new delta
handle_dir_common 201 207 +6
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2014-06-26 12:07:48 +02:00
Denys Vlasenko
de3cae1348
ftpd: support deprecated XPWD command
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2014-06-25 16:23:59 +02:00
Denys Vlasenko
e1db338a51
ftpd: free allocated string on error path
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-07-11 00:26:24 +02:00
Denys Vlasenko
3bb858765e
ftpd: fix MDTM's month value. Closes 5336
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-07-11 00:16:08 +02:00
Denys Vlasenko
0687a5b496
libbb: make xchroot do a chdir("/") after chroot
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-08 00:28:24 +01:00
Denys Vlasenko
66426760be
*: remove "Options:" string from help texts
...
function old new delta
packed_usage 28706 28623 -83
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2011-06-05 03:58:28 +02:00
Denys Vlasenko
ca18311d0a
libbb: make set_nport accept pointer to sockaddr, not to len_and_sockaddr.
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2011-04-07 17:52:20 +02:00
Denys Vlasenko
115c35d68e
ftpd: better usage text
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2011-03-08 03:01:10 +01:00
Denys Vlasenko
0ef64bdb40
*: make GNU licensing statement forms more regular
...
This change retains "or later" state! No licensing _changes_ here,
only form is adjusted (article, space between "GPL" and "v2" and so on).
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-08-16 20:14:46 +02:00
Denys Vlasenko
7783248eaa
*: s/xatoi_u/xatoi_positive/g - I got bored of mistyping xatoi_u as xatou_i
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-08-12 14:14:45 +02:00
Pascal Bellard
926031b764
*: introduce and use xfork() and xvfork()
...
function old new delta
launch_helper 170 169 -1
setup_heredoc 312 302 -10
handle_dir_common 367 354 -13
expand_vars_to_list 2456 2443 -13
open_transformer 89 74 -15
data_extract_to_command 439 423 -16
do_ipaddr 1406 1389 -17
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/7 up/down: 0/-85) Total: -85 bytes
Signed-off-by: Pascal Bellard <pascal.bellard@ads-lu.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-07-04 15:32:38 +02:00
Denys Vlasenko
238c83bd82
ftpd: work around LIST -aXYZ too, not only LIST -lXYZ
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-04-21 18:05:10 -04:00
Denys Vlasenko
f6916dbed4
telnetd: fill hostname field in utmp/wtmp records
...
function old new delta
get_lsa - 109 +109
make_new_session 438 504 +66
get_peer_lsa - 10 +10
ftpd_main 2340 2267 -73
get_sock_lsa 101 10 -91
------------------------------------------------------------------------------
(add/remove: 2/0 grow/shrink: 1/2 up/down: 185/-164) Total: 21 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-04-06 17:43:29 +02:00
Denys Vlasenko
4a1884da53
ftpd: shrink by 33 bytes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-04-03 14:59:12 +02:00
Denys Vlasenko
8031848938
typo fixes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-02-24 14:27:55 +01:00
Denys Vlasenko
98a4c7cf3d
*: suppress ~60% of "aliased warnings" on gcc-4.4.1
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-02-04 15:00:15 +01:00
Denys Vlasenko
3581c62515
whitespace fixes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-01-25 13:39:24 +01:00
Stefan Seyfried
f3fc9ac166
ftpd: conditional support for broken clients
...
Signed-off-by: Stefan Seyfried <stefan.seyfried@googlemail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-01-18 02:08:30 +01:00
Denys Vlasenko
33f9dc08e5
ftpd: code shrink
...
function old new delta
MMU:
handle_dir_common 354 338 -16
NOMMU:
ftpd_main 2437 2442 +5
popen_ls 201 174 -27
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-01-17 22:32:22 +01:00
Denys Vlasenko
a7ccdeef39
libbb: added xfdopen_for_read/write
...
function old new delta
xfdopen_helper - 40 +40
logdir_open 1163 1184 +21
process_stdin 433 443 +10
xfdopen_for_write - 9 +9
doCommands 2465 2474 +9
patch_main 1214 1222 +8
bbunpack 457 465 +8
xfdopen_for_read - 7 +7
scan_tree 258 262 +4
xstrtoul_range_sfx 230 231 +1
sendmail_main 957 955 -2
passwd_main 1027 1023 -4
parse 969 964 -5
test_main 253 247 -6
sed_main 655 649 -6
dos2unix_main 437 429 -8
fbsplash_main 950 938 -12
handle_dir_common 371 354 -17
expand_vars_to_list 2197 2169 -28
update_passwd 1275 1246 -29
------------------------------------------------------------------------------
(add/remove: 3/0 grow/shrink: 7/10 up/down: 117/-117) Total: 0 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-11-15 23:28:11 +01:00
Denys Vlasenko
8131eea3dc
*: introduce and use ffulsh_all()
...
function old new delta
buffer_fill_and_print 179 196 +17
fflush_all - 9 +9
spawn 87 92 +5
rtcwake_main 455 453 -2
...
alarm_intr 93 84 -9
readcmd 1072 1062 -10
bb_ask 345 333 -12
more_main 845 832 -13
flush_stdout_stderr 42 23 -19
xfflush_stdout 27 - -27
flush_stderr 30 - -30
------------------------------------------------------------------------------
(add/remove: 1/2 grow/shrink: 2/50 up/down: 31/-397) Total: -366 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-11-02 14:19:51 +01:00
Denys Vlasenko
1b34d4f0b1
find: add zeroing of G.xxx; ftpd - remove extraneous zeroing of G.xxx
...
Brought "G trick" to the same shape in a few more places.
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-09-30 02:39:57 +02:00
Denys Vlasenko
035b4d77dc
ftpd: allow multiple -S options to increase verbosity too, like -v
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-06-05 20:42:40 +02:00
Denys Vlasenko
8507e1f109
ftpd: fix a case when with -w unknown commands are ignored with no error code
...
Signed-off-by: Stefan Seyfried <seife@suse.de>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-06-04 19:03:20 +02:00
Denis Vlasenko
5e34ff29bc
*: mass renaming of USE_XXXX to IF_XXXX
...
and SKIP_XXXX to IF_NOT_XXXX - the second one was especially
badly named. It was not skipping anything!
2009-04-21 11:09:40 +00:00
Denis Vlasenko
42e78b978f
ftpd: s/CONFIG_BUSYBOX_EXEC_PATH/bb_busybox_exec_path/
2009-04-04 20:34:22 +00:00
Denis Vlasenko
9f57cf6604
ftpd: fix command fetching to not do it in 1-byte reads;
...
fix command de-escaping. Tested to download files with embeeded \xff and LF.
libbb: tweaks for the above
function old new delta
ftpd_main 2231 2321 +90
xmalloc_fgets_internal 190 222 +32
xmalloc_fgets_str_len - 27 +27
xmalloc_fgets_str 7 23 +16
xmalloc_fgetline_str 10 26 +16
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 4/0 up/down: 181/0) Total: 181 bytes
2009-03-18 17:32:44 +00:00
Denis Vlasenko
fce4a9454c
ftpd: add some comments
2009-03-18 16:02:54 +00:00
Denis Vlasenko
e3b840ce98
ftpd: trim messages (but make sure they still make sense)
...
text data bss dec hex filename
4400 0 0 4400 1130 ftpd_old.o
4346 0 0 4346 10fa ftpd.o
2009-03-18 14:25:28 +00:00
Denis Vlasenko
5b492ee876
ftpd: do not use nasty tricks for re-execing if we are on MMU machine.
...
On NOMMU, code is alomost the same, on MMU:
function old new delta
handle_dir_common 223 390 +167
ftpd_main 2306 2231 -75
popen_ls 203 - -203
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 1/1 up/down: 167/-278) Total: -111 bytes
2009-03-18 14:12:22 +00:00
Denis Vlasenko
1432cb4bd9
ftpd: add support for MDTM, I see clients often use it,
...
it may allow client-side caching.
function old new delta
ftpd_main 2232 2306 +74
gmtime_r - 19 +19
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 1/0 up/down: 93/0) Total: 93 bytes
2009-03-18 00:45:00 +00:00
Denis Vlasenko
3a7a1eba2e
ftpd: document NLST format
2009-03-17 13:03:06 +00:00
Denis Vlasenko
1a82555108
ftpd: instead of wordy HELP, implement useful, and smaller, FEAT.
...
(HELP is still "supported" as an alias to FEAT)
text data bss dec hex filename
807331 468 7856 815655 c7227 busybox_old
807246 468 7856 815570 c71d2 busybox_unstripped
2009-03-17 12:40:34 +00:00
Denis Vlasenko
edb0de4283
ftpd: implement -vv verbosity
...
function old new delta
ftpd_main 2097 2190 +93
verbose_log - 33 +33
cmdio_write_raw 12 34 +22
cmdio_write_ok 25 45 +20
cmdio_write_error 25 45 +20
cmdio_write 62 78 +16
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 5/0 up/down: 204/0) Total: 204 bytes
2009-03-17 12:23:24 +00:00
Denis Vlasenko
e6c94a611a
ftpd: tweak timeout code
2009-03-17 05:11:51 +00:00
Denis Vlasenko
074c9036b2
ftpd: fix thinko: set_nport takes port in network order
2009-03-16 21:01:41 +00:00
Denis Vlasenko
fbf5846ce1
ftpd: dont use fdprintf for simple status messages
...
function old new delta
ftpd_main 2025 2055 +30
cmdio_write_ok 17 25 +8
cmdio_write_error 17 25 +8
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/0 up/down: 46/0) Total: 46 bytes
2009-03-16 20:54:45 +00:00
Denis Vlasenko
43bb7bba3b
ftpd: simplify PORT check by assuming IP = peer's IP.
...
Should be as safe as before this change.
function old new delta
ftpd_main 2115 2025 -90
2009-03-16 19:54:06 +00:00
Denis Vlasenko
20c8216897
ftpd: add idle and absolute timeouts. This is a security issue,
...
otherwise ftpd may end up hanging indefinitely.
function old new delta
timeout_handler - 110 +110
ftpd_main 2019 2115 +96
packed_usage 25662 25685 +23
handle_upload_common 306 322 +16
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 3/0 up/down: 245/0) Total: 245 bytes
2009-03-16 16:19:53 +00:00
Denis Vlasenko
f2160b6a09
ftpd: security tightened up:
...
PORT is not allowed on !IPv4
PORT must have IP == peer's IP
upload is allowed only into regular files
function old new delta
ftpd_main 1815 2019 +204
handle_upload_common 260 306 +46
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/0 up/down: 250/0) Total: 250 bytes
2009-03-16 14:53:54 +00:00
Denis Vlasenko
fc58ba1298
ftpd: fix the bug where >2GB file ops report errors;
...
make a few simplifications; add TODOs.
function old new delta
port_or_pasv_was_seen - 37 +37
get_remote_transfer_fd 104 109 +5
handle_upload_common 265 260 -5
handle_dir_common 228 223 -5
popen_ls 211 203 -8
ftpd_main 1825 1815 -10
data_transfer_checks_ok 37 - -37
------------------------------------------------------------------------------
(add/remove: 1/1 grow/shrink: 1/4 up/down: 42/-65) Total: -23 bytes
2009-03-15 15:54:58 +00:00
Denis Vlasenko
4221e90ae4
ftpd: stop unconditional logging to syslog. This was the only applet
...
which was doing it. Added option -S to enable it when desired.
function old new delta
packed_usage 25647 25666 +19
ftpd_main 1826 1825 -1
2009-03-11 15:07:44 +00:00
Denis Vlasenko
5b28d314e7
ftpd: add LOG_NDELAY to openlog
2009-03-09 17:22:16 +00:00