Commit Graph

111 Commits

Author SHA1 Message Date
Sebastian Huber
d4b369814a ftpd: Fix set but not used warning 2023-12-19 08:03:42 +01:00
Sebastian Huber
46b32dd662 ftpd: Make socket timeout optional
This feature is not supported by lwIP.
2023-12-14 11:12:49 +01:00
Sebastian Huber
bcef89f236 Update company name
The embedded brains GmbH & Co. KG is the legal successor of embedded
brains GmbH.
2023-05-20 11:05:26 +02:00
Ryan Long
86a6aca9d7 ftpd.c: Add file header and license
This file had no header, copyright, or license. Based on git history,
added appropriate copyright and license.
2022-05-04 09:12:07 -05:00
Joel Sherrill
2dcc54f9c6 cpukit/ftpd: Change license to BSD-2
Not all files could be changed.

Updates #3053.
2022-02-28 10:28:05 -06:00
Sebastian Huber
80cf60efec Canonicalize config.h include
Use the following variant which was already used by most source files:

  #ifdef HAVE_CONFIG_H
  #include "config.h"
  #endif
2020-04-16 07:30:00 +02:00
Sebastian Huber
eb92b1fceb ftpd: Fix return types 2020-03-31 10:11:06 +02:00
kuaLeYi
bde6ac2060 Misc: Minor English fixes (GCI 2018) 2018-11-20 09:45:51 -06:00
Sebastian Huber
fa0adf3618 ftpd: Avoid TOCTOU problem
Assume that opendir() returns only non-NULL if we actually open a
directory.

Update #3530.
2018-10-30 13:27:03 +01:00
Sebastian Huber
8c3cd1e81b ftpd: Deal with too long command lines
Update #3530.
2018-10-30 13:27:03 +01:00
Sebastian Huber
706802f870 ftpd: Make send_dirline() more robust
Account for large file names.

Update #3530.
2018-10-30 13:27:03 +01:00
Sebastian Huber
690718ab37 build: Merge ftpd/Makefile.am 2018-10-09 13:26:47 +02:00
Sebastian Huber
84a5921d33 ftpd: Restructure chroot() handling.
Remove superfluous setting of errno = 0.

Update #3530.
2018-10-09 13:26:46 +02:00
Sebastian Huber
5bd75823bb ftpd: Remove superfluous temporary buffer
Update #3530.
2018-10-08 10:06:44 +02:00
Sebastian Huber
2f784d72d3 ftpd: Check return status of getsockname()
Update #3530.
2018-10-08 08:15:13 +02:00
Sebastian Huber
be8de0ff46 ftpd: Fix insecure chroot() handling
Ensure that the rtems_libio_set_private_env() was successful before the
chroot().

Update #3530.
2018-10-05 15:16:46 +02:00
Sebastian Huber
df97c4d25f ftpd: Avoid resource leak
Update #3530.
2018-10-05 14:56:10 +02:00
Sebastian Huber
479a28e08c ftpd: Avoid use of uninitialized memory
Update #3530.
2018-10-05 14:54:49 +02:00
Sebastian Huber
51da629b2a ftpd: Avoid malloc() and sscanf()
Move the user name to the session information.

Update #3530.
2018-10-05 14:47:21 +02:00
Sebastian Huber
dcf42bb238 ftpd: Remove FTPD_SessionInfo_t::pass member
There is no need to keep the password throughout the session.

Update #3530.
2018-10-05 14:39:46 +02:00
Sebastian Huber
e761fb4dc0 ftpd: Avoid NULL pointer checks before free()
They are superfluous and just bloat the code.

Update #3530.
2018-10-05 14:05:54 +02:00
Sebastian Huber
f004b2b8dc Use rtems_task_exit()
Update #3530.
Update #3533.
2018-10-02 10:22:15 +02:00
Sebastian Huber
eaa1709894 ftpd: Fix infinite recursion in yield()
Update #3419.
2018-05-08 08:05:48 +02:00
Sebastian Huber
b771cb48a6 ftpd: Always build FTP daemon
Add support for libbsd initialization.

Update #3419.
2018-05-02 09:56:49 +02:00
Sebastian Huber
32b5b238da ftpd: Use floating-point tasks due to syslog()
Update #3419.
2018-05-02 09:56:49 +02:00
Sebastian Huber
4fed5ac2a4 ftpd: Fairplay with libbsd
Update #3419.
2018-05-02 09:56:48 +02:00
Sebastian Huber
0a593c2d3f ftpd: Use self-contained synchronization objects
Update #2843.
2018-02-07 08:58:30 +01:00
Chris Johns
2afb22b7e1 Remove make preinstall
A speciality of the RTEMS build system was the make preinstall step.  It
copied header files from arbitrary locations into the build tree.  The
header files were included via the -Bsome/build/tree/path GCC command
line option.

This has at least seven problems:

* The make preinstall step itself needs time and disk space.

* Errors in header files show up in the build tree copy.  This makes it
  hard for editors to open the right file to fix the error.

* There is no clear relationship between source and build tree header
  files.  This makes an audit of the build process difficult.

* The visibility of all header files in the build tree makes it
  difficult to enforce API barriers.  For example it is discouraged to
  use BSP-specifics in the cpukit.

* An introduction of a new build system is difficult.

* Include paths specified by the -B option are system headers.  This
  may suppress warnings.

* The parallel build had sporadic failures on some hosts.

This patch removes the make preinstall step.   All installed header
files are moved to dedicated include directories in the source tree.
Let @RTEMS_CPU@ be the target architecture, e.g. arm, powerpc, sparc,
etc.  Let @RTEMS_BSP_FAMILIY@ be a BSP family base directory, e.g.
erc32, imx, qoriq, etc.

The new cpukit include directories are:

* cpukit/include

* cpukit/score/cpu/@RTEMS_CPU@/include

* cpukit/libnetworking

The new BSP include directories are:

* bsps/include

* bsps/@RTEMS_CPU@/include

* bsps/@RTEMS_CPU@/@RTEMS_BSP_FAMILIY@/include

There are build tree include directories for generated files.

The include directory order favours the most general header file, e.g.
it is not possible to override general header files via the include path
order.

The "bootstrap -p" option was removed.  The new "bootstrap -H" option
should be used to regenerate the "headers.am" files.

Update #3254.
2018-01-25 08:45:26 +01:00
Sebastian Huber
51a30a4b73 ftpd: Include <rtems/ftpd.h>
Prepare for header file move to common include directory.

Update #3254.
2017-12-13 09:04:25 +01:00
Sebastian Huber
08586e5b94 ftpd: Use floating point tasks
Update #3076.
2017-07-18 14:13:47 +02:00
Sebastian Huber
e3f8ba57f4 ftpd: Resolve function name conflict
Visible with Newlib be657151f12f4d198e45395987f0a626ee1bbb91.
2016-03-18 10:30:57 +01:00
Sebastian Huber
f97536dcd3 basdefs.h: Add and use RTEMS_UNUSED 2015-10-26 09:13:19 +01:00
Chris Johns
59990cc975 Regenerate all preinstall.am files.
With this patch the preinstall.am files are in a set order and not
dependent on now perl implements a hash.
2014-08-29 12:48:01 +10:00
Joel Sherrill
b597c0d60c Regenerate all preinstall.am files.
Apparently, at some point automake output changed and these were
not updated.
2014-08-28 08:44:52 -05:00
Sebastian Huber
995610e145 ftpd: Go back to the root directory 2013-02-13 14:19:50 +01:00
Sebastian Huber
1b937c6994 ftpd: Check the root and current directory change
Only continue the session if the root and current directory change was
successful, otherwise the FTP server may access restricted file system
areas.
2013-01-30 17:08:04 +01:00
Sebastian Huber
55a36b724c ftpd: Add SIZE command 2012-11-21 16:38:34 +01:00
Sebastian Huber
4da3fef455 ftpd: Set current directory after session close
The chroot() is an implicit chdir("/").  Set the current directory to
"/" after session close.  This helps to avoid references to mounted file
systems in dynamic media.
2012-05-29 16:18:44 +02:00
Joel Sherrill
9b4422a251 Remove All CVS Id Strings Possible Using a Script
Script does what is expected and tries to do it as
smartly as possible.

+ remove occurrences of two blank comment lines
  next to each other after Id string line removed.
+ remove entire comment blocks which only exited to
  contain CVS Ids
+ If the processing left a blank line at the top of
  a file, it was removed.
2012-05-11 08:44:13 -05:00
Joel Sherrill
33a105fb69 Revert: Remove CVS Ids
See http://www.rtems.org/pipermail/rtems-devel/2012-May/001006.html
for details.
2012-05-07 11:08:48 -05:00
Ralf Corsépius
ee32f67a6f Remove CVS-Ids. 2012-05-04 09:36:25 +02:00
Joel Sherrill
796bb3f51c PR 1998/networking - Move ftpd root initialization
From: Xiangfu <xiangfu@sharism.cc>
Signed-off-by: Xiangfu <xiangfu@sharism.cc>
2012-02-02 13:33:09 -06:00
Joel Sherrill
61250b4ce9 Remove all .cvsignore files. 2012-02-01 10:59:44 -06:00
Ralf Corsepius
438a893051 2011-12-08 Ralf Corsépius <ralf.corsepius@rtems.org>
* ftpd/ftpd.c: Make split_command static.
2011-12-08 05:36:27 +00:00
Sebastian Huber
09647b7e20 2011-10-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
* ftpd/ftpd.h, ftpd/ftpd.c: Moved buffer and stack size constants into
	header file.
2011-10-26 10:32:09 +00:00
Sebastian Huber
eef45d18c3 2011-10-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
* ftpd/ftpd.c: Increased data buffer size to 4096 bytes.  Use
	RTEMS_MINIMUM_STACK_SIZE plus the data buffer size for worker thread
	stack size.
2011-10-26 10:20:54 +00:00
Joel Sherrill
64adc13c86 2011-07-24 Joel Sherrill <joel.sherrill@oarcorp.com>
* ftpd/ftpd.c, libcsupport/src/geteuid.c, libcsupport/src/getgroups.c,
	libcsupport/src/getpgrp.c, libcsupport/src/getpid.c,
	libcsupport/src/getppid.c, libcsupport/src/setpgid.c,
	libcsupport/src/setsid.c, libcsupport/src/utsname.c,
	libmisc/stackchk/check.c, posix/include/rtems/posix/mqueue.h,
	posix/inline/rtems/posix/cond.inl,
	posix/inline/rtems/posix/mqueue.inl,
	posix/inline/rtems/posix/mutex.inl,
	posix/inline/rtems/posix/pthread.inl,
	posix/inline/rtems/posix/semaphore.inl,
	posix/inline/rtems/posix/timer.inl, posix/src/alarm.c,
	posix/src/barrierattrdestroy.c, posix/src/barrierattrgetpshared.c,
	posix/src/barrierattrinit.c, posix/src/barrierattrsetpshared.c,
	posix/src/cleanuppop.c, posix/src/cleanuppush.c,
	posix/src/clockgetcpuclockid.c, posix/src/clockgetenableattr.c,
	posix/src/clockgetres.c, posix/src/clockgettime.c,
	posix/src/clocksetenableattr.c, posix/src/clocksettime.c,
	posix/src/cond.c, posix/src/condattrdestroy.c,
	posix/src/condattrgetpshared.c, posix/src/condattrinit.c,
	posix/src/condattrsetpshared.c, posix/src/condbroadcast.c,
	posix/src/conddefaultattributes.c, posix/src/conddestroy.c,
	posix/src/condinit.c, posix/src/condsignal.c,
	posix/src/condsignalsupp.c, posix/src/condtimedwait.c,
	posix/src/condwait.c, posix/src/condwaitsupp.c,
	posix/src/keygetspecific.c, posix/src/keyrundestructors.c,
	posix/src/keysetspecific.c, posix/src/mprotect.c, posix/src/mqueue.c,
	posix/src/mqueuecreatesupp.c, posix/src/mqueuedeletesupp.c,
	posix/src/mqueuegetattr.c, posix/src/mqueuenotify.c,
	posix/src/mqueuereceive.c, posix/src/mqueuesend.c,
	posix/src/mqueuesendsupp.c, posix/src/mqueuesetattr.c,
	posix/src/mqueuetimedreceive.c, posix/src/mqueuetimedsend.c,
	posix/src/mqueuetranslatereturncode.c, posix/src/mqueueunlink.c,
	posix/src/mutex.c, posix/src/mutexattrdestroy.c,
	posix/src/mutexattrgetprioceiling.c,
	posix/src/mutexattrgetprotocol.c, posix/src/mutexattrgetpshared.c,
	posix/src/mutexattrinit.c, posix/src/mutexattrsetprioceiling.c,
	posix/src/mutexattrsetprotocol.c, posix/src/mutexattrsetpshared.c,
	posix/src/mutexdestroy.c, posix/src/mutexgetprioceiling.c,
	posix/src/mutexinit.c, posix/src/mutexlock.c,
	posix/src/mutexlocksupp.c, posix/src/mutexsetprioceiling.c,
	posix/src/mutextimedlock.c, posix/src/mutextrylock.c,
	posix/src/mutexunlock.c, posix/src/nanosleep.c, posix/src/psignal.c,
	posix/src/psignalchecksignal.c,
	posix/src/psignalclearprocesssignals.c,
	posix/src/psignalclearsignals.c,
	posix/src/psignalsetprocesssignals.c,
	posix/src/psignalunblockthread.c, posix/src/pthreadinitthreads.c,
	posix/src/rwlockattrdestroy.c, posix/src/rwlockattrgetpshared.c,
	posix/src/rwlockattrinit.c, posix/src/rwlockattrsetpshared.c,
	posix/src/semaphore.c, posix/src/semaphoredeletesupp.c,
	posix/src/semaphorenametoid.c, posix/src/semaphorewaitsupp.c,
	posix/src/semclose.c, posix/src/semdestroy.c,
	posix/src/semgetvalue.c, posix/src/seminit.c, posix/src/semopen.c,
	posix/src/sempost.c, posix/src/semtimedwait.c,
	posix/src/semtrywait.c, posix/src/semunlink.c, posix/src/semwait.c,
	posix/src/sysconf.c, posix/src/testcancel.c, posix/src/ualarm.c,
	rtems/src/clockgetuptime.c, rtems/src/clockset.c,
	rtems/src/clocksetnsecshandler.c, rtems/src/clocktick.c,
	rtems/src/clocktodtoseconds.c, rtems/src/clocktodvalidate.c,
	rtems/src/dpmem.c, rtems/src/dpmemcreate.c, rtems/src/dpmemdelete.c,
	rtems/src/dpmemexternal2internal.c, rtems/src/dpmemident.c,
	rtems/src/dpmeminternal2external.c, rtems/src/event.c,
	rtems/src/eventmp.c, rtems/src/eventreceive.c,
	rtems/src/eventseize.c, rtems/src/eventsend.c,
	rtems/src/eventsurrender.c, rtems/src/eventtimeout.c, rtems/src/mp.c,
	rtems/src/msg.c, rtems/src/msgmp.c, rtems/src/msgqallocate.c,
	rtems/src/msgqbroadcast.c, rtems/src/msgqcreate.c,
	rtems/src/msgqdelete.c, rtems/src/msgqflush.c,
	rtems/src/msgqgetnumberpending.c, rtems/src/msgqident.c,
	rtems/src/msgqreceive.c, rtems/src/msgqtranslatereturncode.c,
	rtems/src/msgqurgent.c, rtems/src/part.c, rtems/src/partcreate.c,
	rtems/src/partdelete.c, rtems/src/partgetbuffer.c,
	rtems/src/partident.c, rtems/src/partmp.c,
	rtems/src/partreturnbuffer.c, rtems/src/ratemon.c,
	rtems/src/ratemoncancel.c, rtems/src/ratemoncreate.c,
	rtems/src/ratemondelete.c, rtems/src/ratemongetstatistics.c,
	rtems/src/ratemongetstatus.c, rtems/src/ratemonident.c,
	rtems/src/ratemonperiod.c, rtems/src/ratemonresetstatistics.c,
	rtems/src/ratemontimeout.c, rtems/src/region.c,
	rtems/src/regioncreate.c, rtems/src/regiondelete.c,
	rtems/src/regionextend.c, rtems/src/regiongetfreeinfo.c,
	rtems/src/regiongetinfo.c, rtems/src/regiongetsegment.c,
	rtems/src/regiongetsegmentsize.c, rtems/src/regionident.c,
	rtems/src/regionmp.c, rtems/src/regionprocessqueue.c,
	rtems/src/regionresizesegment.c, rtems/src/regionreturnsegment.c,
	rtems/src/rtemsobjectgetclassicname.c, rtems/src/rtemstimer.c,
	rtems/src/sem.c, rtems/src/semcreate.c, rtems/src/semdelete.c,
	rtems/src/semflush.c, rtems/src/semident.c, rtems/src/semmp.c,
	rtems/src/semobtain.c, rtems/src/semrelease.c,
	rtems/src/semtranslatereturncode.c, rtems/src/signal.c,
	rtems/src/signalcatch.c, rtems/src/signalmp.c,
	rtems/src/signalsend.c, rtems/src/taskcreate.c,
	rtems/src/taskdelete.c, rtems/src/taskgetnote.c,
	rtems/src/taskident.c, rtems/src/taskinitusers.c,
	rtems/src/taskissuspended.c, rtems/src/taskmp.c,
	rtems/src/taskrestart.c, rtems/src/taskresume.c, rtems/src/tasks.c,
	rtems/src/tasksetnote.c, rtems/src/tasksetpriority.c,
	rtems/src/taskstart.c, rtems/src/tasksuspend.c,
	rtems/src/taskwakeafter.c, rtems/src/taskwakewhen.c,
	rtems/src/timercancel.c, rtems/src/timercreate.c,
	rtems/src/timerdelete.c, rtems/src/timerfireafter.c,
	rtems/src/timerfirewhen.c, rtems/src/timergetinfo.c,
	rtems/src/timerident.c, rtems/src/timerreset.c,
	rtems/src/timerserverfireafter.c, rtems/src/timerserverfirewhen.c,
	sapi/src/debug.c, sapi/src/extension.c, sapi/src/posixapi.c,
	sapi/src/rtemsapi.c, score/src/apiext.c, score/src/chain.c,
	score/src/corebarrier.c, score/src/corebarrierrelease.c,
	score/src/corebarrierwait.c, score/src/coremsgbroadcast.c,
	score/src/coremsgclose.c, score/src/coremsgflush.c,
	score/src/coremsgflushsupp.c, score/src/coremsgflushwait.c,
	score/src/coremsginsert.c, score/src/coremsgseize.c,
	score/src/coremsgsubmit.c, score/src/coremutex.c,
	score/src/coremutexflush.c, score/src/coremutexseize.c,
	score/src/corerwlock.c, score/src/corerwlockobtainread.c,
	score/src/corerwlockobtainwrite.c, score/src/corerwlockrelease.c,
	score/src/coresem.c, score/src/coresemflush.c,
	score/src/coresemsurrender.c, score/src/corespinlock.c,
	score/src/corespinlockrelease.c, score/src/corespinlockwait.c,
	score/src/coretod.c, score/src/coretodset.c,
	score/src/coretodtickle.c, score/src/heap.c, score/src/interr.c,
	score/src/mpci.c, score/src/objectallocate.c,
	score/src/objectextendinformation.c, score/src/objectfree.c,
	score/src/objectget.c, score/src/objectgetisr.c,
	score/src/objectgetnext.c, score/src/objectgetnoprotection.c,
	score/src/objectinitializeinformation.c, score/src/objectmp.c,
	score/src/objectnametoid.c, score/src/objectnametoidstring.c,
	score/src/objectshrinkinformation.c, score/src/rbtree.c,
	score/src/threaddelayended.c, score/src/threadhandler.c,
	score/src/threadinitialize.c, score/src/threadloadenv.c,
	score/src/threadmp.c, score/src/threadq.c,
	score/src/threadqdequeue.c, score/src/threadqdequeuefifo.c,
	score/src/threadqdequeuepriority.c, score/src/threadqenqueue.c,
	score/src/threadqenqueuefifo.c, score/src/threadqenqueuepriority.c,
	score/src/threadqextract.c, score/src/threadqextractfifo.c,
	score/src/threadqextractpriority.c,
	score/src/threadqextractwithproxy.c, score/src/threadqfirst.c,
	score/src/threadqfirstfifo.c, score/src/threadqfirstpriority.c,
	score/src/threadqflush.c, score/src/threadqrequeue.c,
	score/src/threadstackallocate.c, score/src/threadstartmultitasking.c,
	score/src/watchdog.c, score/src/watchdogadjust.c,
	score/src/watchdoginsert.c, score/src/watchdogremove.c,
	score/src/watchdogtickle.c: Remove /*PAGE markers which were
	interpreted by a long dead print script.
2011-07-24 23:55:15 +00:00
Sebastian Huber
86933ce00d 2011-06-24 Arnout Vandecappelle <arnout@mind.be>
Sebastien Bourdeauducq <sebastien@milkymist.org>

	PR 1724/cpukit
	* ftpd/ftpd.h, ftpd/ftpd.c: Added USER/PASS authentication.
2011-06-24 10:00:36 +00:00
Sebastian Huber
1343dfa314 2011-06-07 Sebastian Huber <sebastian.huber@embedded-brains.de>
PR 1811/networking
	* ftpd/ftpd.c: Fixed reply format.
2011-06-07 09:08:37 +00:00
Joel Sherrill
ff49ffe396 2011-04-04 Sebastien Bourdeauducq <sebastien.bourdeauducq@gmail.com>
PR 1722/networking
	* ftpd/ftpd.c: FTPD fails to parse correctly FTP commands relating to
	filenames with spaces in them.
2011-04-04 17:08:34 +00:00