From f98b47eb5590b9df10ef5946c5b2ca4a49c85446 Mon Sep 17 00:00:00 2001 From: nekral-guest Date: Fri, 13 Mar 2009 22:28:27 +0000 Subject: [PATCH] * src/chpasswd.c: Make sure the SHA related variables is not compiled when disabled at configuration time. * src/chgpasswd.c: Make sure the SHA related variables is not compiled when disabled at configuration time. * src/chgpasswd.c: Fix the test for getlong() failure. --- ChangeLog | 5 +++++ src/chgpasswd.c | 12 ++++++++++-- src/chpasswd.c | 10 +++++++++- 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index d25a82a8..8b08a66c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,6 +3,11 @@ * src/newusers.c: Make sure the SHA related variables are not compiled when disabled at configuration time. * src/newusers.c: Added FIXME + * src/chpasswd.c: Make sure the SHA related variables is not + compiled when disabled at configuration time. + * src/chgpasswd.c: Make sure the SHA related variables is not + compiled when disabled at configuration time. + * src/chgpasswd.c: Fix the test for getlong() failure. 2009-03-13 Nicolas François diff --git a/src/chgpasswd.c b/src/chgpasswd.c index d1ffe392..81f42548 100644 --- a/src/chgpasswd.c +++ b/src/chgpasswd.c @@ -2,7 +2,7 @@ * Copyright (c) 1990 - 1994, Julianne Frances Haugh * Copyright (c) 2006 , Tomasz Kłoczko * Copyright (c) 2006 , Jonas Meurer - * Copyright (c) 2007 - 2008, Nicolas François + * Copyright (c) 2007 - 2009, Nicolas François * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -59,10 +59,14 @@ char *Prog; static bool cflg = false; static bool eflg = false; static bool md5flg = false; +#ifdef USE_SHA_CRYPT static bool sflg = false; +#endif static const char *crypt_method = NULL; +#ifdef USE_SHA_CRYPT static long sha_rounds = 5000; +#endif #ifdef SHADOWGRP static bool is_shadow_grp; @@ -176,7 +180,7 @@ static void process_flags (int argc, char **argv) #ifdef USE_SHA_CRYPT case 's': sflg = true; - if (getlong(optarg, &sha_rounds) != 0) { + if (getlong(optarg, &sha_rounds) == 0) { fprintf (stderr, _("%s: invalid numeric argument '%s'\n"), Prog, optarg); @@ -204,12 +208,14 @@ static void process_flags (int argc, char **argv) */ static void check_flags (void) { +#ifdef USE_SHA_CRYPT if (sflg && !cflg) { fprintf (stderr, _("%s: %s flag is only allowed with the %s flag\n"), Prog, "-s", "-c"); usage (); } +#endif if ((eflg && (md5flg || cflg)) || (md5flg && cflg)) { @@ -443,9 +449,11 @@ int main (int argc, char **argv) if (md5flg) { crypt_method = "MD5"; } else if (crypt_method != NULL) { +#ifdef USE_SHA_CRYPT if (sflg) { arg = &sha_rounds; } +#endif } else { crypt_method = NULL; } diff --git a/src/chpasswd.c b/src/chpasswd.c index 9a626755..697c9fc6 100644 --- a/src/chpasswd.c +++ b/src/chpasswd.c @@ -2,7 +2,7 @@ * Copyright (c) 1990 - 1994, Julianne Frances Haugh * Copyright (c) 1996 - 2000, Marek Michałkiewicz * Copyright (c) 2000 - 2006, Tomasz Kłoczko - * Copyright (c) 2007 - 2008, Nicolas François + * Copyright (c) 2007 - 2009, Nicolas François * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -57,10 +57,14 @@ char *Prog; static bool cflg = false; static bool eflg = false; static bool md5flg = false; +#ifdef USE_SHA_CRYPT static bool sflg = false; +#endif static const char *crypt_method = NULL; +#ifdef USE_SHA_CRYPT static long sha_rounds = 5000; +#endif static bool is_shadow_pwd; static bool pw_locked = false; @@ -198,12 +202,14 @@ static void process_flags (int argc, char **argv) */ static void check_flags (void) { +#ifdef USE_SHA_CRYPT if (sflg && !cflg) { fprintf (stderr, _("%s: %s flag is only allowed with the %s flag\n"), Prog, "-s", "-c"); usage (); } +#endif if ((eflg && (md5flg || cflg)) || (md5flg && cflg)) { @@ -434,9 +440,11 @@ int main (int argc, char **argv) if (md5flg) { crypt_method = "MD5"; } else if (crypt_method != NULL) { +#ifdef USE_SHA_CRYPT if (sflg) { arg = &sha_rounds; } +#endif } else { crypt_method = NULL; } -- 2.40.0