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