X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Futils%2Fchkpw.c;h=9691b734336376dd11a7eacf92422d371d70055a;hb=a520d904d0069654c57d2b69618bee1225ee3067;hp=9adabaca500586db5243e8883d2a7ae5e0afd4af;hpb=d460eb89e41f32d8d2e74b9157043c5ceae387b3;p=citadel.git diff --git a/citadel/utils/chkpw.c b/citadel/utils/chkpw.c index 9adabaca5..9691b7343 100644 --- a/citadel/utils/chkpw.c +++ b/citadel/utils/chkpw.c @@ -1,21 +1,13 @@ /* + * Copyright (c) 1987-2021 by the citadel.org team * - * - * Copyright (c) 1987-2009 by the citadel.org team - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. + * This program is open source software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include @@ -51,9 +43,21 @@ static int validpw(uid_t uid, const char *pass) int rv; rv = write(chkpwd_write_pipe[1], &uid, sizeof(uid_t)); + if (rv == -1) { + printf( "Communicatino with chkpwd broken: %s\n", strerror(errno)); + return 0; + } + rv = write(chkpwd_write_pipe[1], pass, 256); + if (rv == -1) { + printf( "Communicatino with chkpwd broken: %s\n", strerror(errno)); + return 0; + } rv = read(chkpwd_read_pipe[0], buf, 4); - + if (rv == -1) { + printf( "Communicatino with chkpwd broken: %s\n", strerror(errno)); + return 0; + } if (!strncmp(buf, "PASS", 4)) { printf("pass\n"); return(1); @@ -110,9 +114,6 @@ int main(int argc, char **argv) { struct passwd *p; int uid; char ctdldir[PATH_MAX]=CTDLDIR; - char *ptr; - - calc_dirs_n_files(0,0,"", ctdldir, 0); printf("\n\n ** host auth mode test utility **\n\n"); start_chkpwd_daemon(); @@ -123,7 +124,7 @@ int main(int argc, char **argv) { } while(1) { printf("\n\nUsername: "); - ptr = fgets(buf, sizeof buf, stdin); + fgets(buf, sizeof buf, stdin); buf[strlen(buf)-1] = 0; p = getpwnam(buf); if (p == NULL) { @@ -133,7 +134,7 @@ int main(int argc, char **argv) { uid = p->pw_uid; printf(" uid: %d\n", uid); printf("Password: "); - ptr = fgets(buf, sizeof buf, stdin); + fgets(buf, sizeof buf, stdin); buf[strlen(buf)-1] = 0; validpw(uid, buf); }