xref: /freebsd/crypto/openssh/sftp-server-main.c (revision 38a52bd3b5cac3da6f7f6eef3dd050e6aa08ebb3)
1*19261079SEd Maste /* $OpenBSD: sftp-server-main.c,v 1.6 2019/06/06 05:13:13 otto Exp $ */
2d4af9e69SDag-Erling Smørgrav /*
3d4af9e69SDag-Erling Smørgrav  * Copyright (c) 2008 Markus Friedl.  All rights reserved.
4d4af9e69SDag-Erling Smørgrav  *
5d4af9e69SDag-Erling Smørgrav  * Permission to use, copy, modify, and distribute this software for any
6d4af9e69SDag-Erling Smørgrav  * purpose with or without fee is hereby granted, provided that the above
7d4af9e69SDag-Erling Smørgrav  * copyright notice and this permission notice appear in all copies.
8d4af9e69SDag-Erling Smørgrav  *
9d4af9e69SDag-Erling Smørgrav  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10d4af9e69SDag-Erling Smørgrav  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11d4af9e69SDag-Erling Smørgrav  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12d4af9e69SDag-Erling Smørgrav  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13d4af9e69SDag-Erling Smørgrav  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14d4af9e69SDag-Erling Smørgrav  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15d4af9e69SDag-Erling Smørgrav  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16d4af9e69SDag-Erling Smørgrav  */
17d4af9e69SDag-Erling Smørgrav 
18d4af9e69SDag-Erling Smørgrav #include "includes.h"
19d4af9e69SDag-Erling Smørgrav 
20d4af9e69SDag-Erling Smørgrav #include <sys/types.h>
21d4af9e69SDag-Erling Smørgrav #include <pwd.h>
22d4af9e69SDag-Erling Smørgrav #include <stdarg.h>
23d4af9e69SDag-Erling Smørgrav #include <stdio.h>
24d4af9e69SDag-Erling Smørgrav #include <unistd.h>
25d4af9e69SDag-Erling Smørgrav 
26d4af9e69SDag-Erling Smørgrav #include "log.h"
27d4af9e69SDag-Erling Smørgrav #include "sftp.h"
28d4af9e69SDag-Erling Smørgrav #include "misc.h"
29acc1a9efSDag-Erling Smørgrav #include "xmalloc.h"
30d4af9e69SDag-Erling Smørgrav 
31d4af9e69SDag-Erling Smørgrav void
cleanup_exit(int i)32d4af9e69SDag-Erling Smørgrav cleanup_exit(int i)
33d4af9e69SDag-Erling Smørgrav {
34d4af9e69SDag-Erling Smørgrav 	sftp_server_cleanup_exit(i);
35d4af9e69SDag-Erling Smørgrav }
36d4af9e69SDag-Erling Smørgrav 
37d4af9e69SDag-Erling Smørgrav int
main(int argc,char ** argv)38d4af9e69SDag-Erling Smørgrav main(int argc, char **argv)
39d4af9e69SDag-Erling Smørgrav {
40d4af9e69SDag-Erling Smørgrav 	struct passwd *user_pw;
41d4af9e69SDag-Erling Smørgrav 
42d4af9e69SDag-Erling Smørgrav 	/* Ensure that fds 0, 1 and 2 are open or directed to /dev/null */
43d4af9e69SDag-Erling Smørgrav 	sanitise_stdfd();
44d4af9e69SDag-Erling Smørgrav 
45d4af9e69SDag-Erling Smørgrav 	if ((user_pw = getpwuid(getuid())) == NULL) {
46cce7d346SDag-Erling Smørgrav 		fprintf(stderr, "No user found for uid %lu\n",
47cce7d346SDag-Erling Smørgrav 		    (u_long)getuid());
48d4af9e69SDag-Erling Smørgrav 		return 1;
49d4af9e69SDag-Erling Smørgrav 	}
50d4af9e69SDag-Erling Smørgrav 
51d4af9e69SDag-Erling Smørgrav 	return (sftp_server_main(argc, argv, user_pw));
52d4af9e69SDag-Erling Smørgrav }
53