xref: /dflybsd-src/crypto/openssh/sftp-server-main.c (revision 95577b5e0147377b730485d25b052a4472277761)
1*0cbfa66cSDaniel Fojt /* $OpenBSD: sftp-server-main.c,v 1.6 2019/06/06 05:13:13 otto Exp $ */
218de8d7fSPeter Avalos /*
318de8d7fSPeter Avalos  * Copyright (c) 2008 Markus Friedl.  All rights reserved.
418de8d7fSPeter Avalos  *
518de8d7fSPeter Avalos  * Permission to use, copy, modify, and distribute this software for any
618de8d7fSPeter Avalos  * purpose with or without fee is hereby granted, provided that the above
718de8d7fSPeter Avalos  * copyright notice and this permission notice appear in all copies.
818de8d7fSPeter Avalos  *
918de8d7fSPeter Avalos  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
1018de8d7fSPeter Avalos  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
1118de8d7fSPeter Avalos  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
1218de8d7fSPeter Avalos  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
1318de8d7fSPeter Avalos  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
1418de8d7fSPeter Avalos  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
1518de8d7fSPeter Avalos  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
1618de8d7fSPeter Avalos  */
1718de8d7fSPeter Avalos 
1818de8d7fSPeter Avalos #include "includes.h"
1918de8d7fSPeter Avalos 
2018de8d7fSPeter Avalos #include <sys/types.h>
2118de8d7fSPeter Avalos #include <pwd.h>
2218de8d7fSPeter Avalos #include <stdarg.h>
2318de8d7fSPeter Avalos #include <stdio.h>
2418de8d7fSPeter Avalos #include <unistd.h>
2518de8d7fSPeter Avalos 
2618de8d7fSPeter Avalos #include "log.h"
2718de8d7fSPeter Avalos #include "sftp.h"
2818de8d7fSPeter Avalos #include "misc.h"
29e9778795SPeter Avalos #include "xmalloc.h"
3018de8d7fSPeter Avalos 
3118de8d7fSPeter Avalos void
cleanup_exit(int i)3218de8d7fSPeter Avalos cleanup_exit(int i)
3318de8d7fSPeter Avalos {
3418de8d7fSPeter Avalos 	sftp_server_cleanup_exit(i);
3518de8d7fSPeter Avalos }
3618de8d7fSPeter Avalos 
3718de8d7fSPeter Avalos int
main(int argc,char ** argv)3818de8d7fSPeter Avalos main(int argc, char **argv)
3918de8d7fSPeter Avalos {
4018de8d7fSPeter Avalos 	struct passwd *user_pw;
4118de8d7fSPeter Avalos 
4218de8d7fSPeter Avalos 	/* Ensure that fds 0, 1 and 2 are open or directed to /dev/null */
4318de8d7fSPeter Avalos 	sanitise_stdfd();
4418de8d7fSPeter Avalos 
4518de8d7fSPeter Avalos 	if ((user_pw = getpwuid(getuid())) == NULL) {
46cb5eb4f1SPeter Avalos 		fprintf(stderr, "No user found for uid %lu\n",
47cb5eb4f1SPeter Avalos 		    (u_long)getuid());
4818de8d7fSPeter Avalos 		return 1;
4918de8d7fSPeter Avalos 	}
5018de8d7fSPeter Avalos 
5118de8d7fSPeter Avalos 	return (sftp_server_main(argc, argv, user_pw));
5218de8d7fSPeter Avalos }
53