1
0
mirror of https://github.com/samba-team/samba.git synced 2025-08-10 21:49:28 +03:00

rpc_server/srv_netlog.c: Fixed crash bug with ACB_PWNOTREQ.

script/makeyodldocs.sh: Added code to make text docs for non-man page YODL docs.
web/cgi.c web/swat.c: SGI compiler warnings fixed.
Jeremy.
This commit is contained in:
Jeremy Allison
-
parent a0f9145d6f
commit 80e0f7e107
5 changed files with 23 additions and 14 deletions

View File

@ -2629,6 +2629,8 @@ int smbw_stat(const char *fname, struct stat *st);
void cgi_load_variables(FILE *f1);
char *cgi_variable(char *name);
BOOL is_root(void);
char *get_user_name(void);
void cgi_setup(char *rootdir, int auth_required);
char *cgi_baseurl(void);
char *cgi_pathinfo(void);

View File

@ -544,8 +544,7 @@ static uint32 net_login_interactive(NET_ID_INFO_1 *id1,
net_login_network:
*************************************************************************/
static uint32 net_login_network(NET_ID_INFO_2 *id2,
struct smb_passwd *smb_pass,
user_struct *vuser)
struct smb_passwd *smb_pass)
{
DEBUG(5,("net_login_network: lm_len: %d nt_len: %d\n",
id2->hdr_lm_chal_resp.str_str_len,
@ -674,15 +673,17 @@ static void api_net_sam_logon( uint16 vuid,
smb_pass = getsmbpwnam(samlogon_user);
unbecome_root(True);
if (smb_pass == NULL)
if (smb_pass->acct_ctrl & ACB_PWNOTREQ)
status = 0;
else if (smb_pass == NULL)
status = 0xC0000000 | NT_STATUS_NO_SUCH_USER;
else if (smb_pass->acct_ctrl & ACB_DISABLED)
status = 0xC0000000 | NT_STATUS_ACCOUNT_DISABLED;
}
/* validate password. */
/* Validate password - if required. */
if (status == 0)
if ((status == 0) && !(smb_pass->acct_ctrl & ACB_PWNOTREQ))
{
switch (q_l.sam_id.logon_level)
{
@ -695,7 +696,7 @@ static void api_net_sam_logon( uint16 vuid,
case NET_LOGON_TYPE:
{
/* network login. lm challenge and 24 byte responses */
status = net_login_network(&q_l.sam_id.ctr->auth.id2, smb_pass, vuser);
status = net_login_network(&q_l.sam_id.ctr->auth.id2, smb_pass);
break;
}
}

View File

@ -67,7 +67,7 @@ do
;;
*)
#
# Non man-page YODL docs - just make html.
# Non man-page YODL docs - just make html and text.
#
echo $d
rm -f $bn.html
@ -78,6 +78,14 @@ do
fi
cp $bn.html ../htmldocs || echo "Cannot create $YODLDIR/../htmldocs/$bn.html"
rm -f $bn.html
rm -f $bn.txt
yodl2txt $d
if [ ! -f $bn.txt ]; then
echo "Failed to make text page for $d"
exit 1
fi
cp $bn.txt ../textdocs || echo "Cannot create $YODLDIR/../textdocs/$bn.txt"
rm -f $bn.txt
;;
esac
done

View File

@ -321,7 +321,7 @@ static int cgi_handle_authorization(char *line)
/***************************************************************************
is this root?
***************************************************************************/
BOOL is_root()
BOOL is_root(void)
{
if ((C_user) && (strcmp(C_user,"root") == 0)) {
return( True);
@ -333,7 +333,7 @@ BOOL is_root()
/***************************************************************************
return a ptr to the users name
***************************************************************************/
char * get_user_name()
char *get_user_name(void)
{
return(C_user);
}

View File

@ -621,7 +621,6 @@ static BOOL talk_to_smbpasswd(char *old, char *new)
int to_child = fd1[1];
int from_child = fd2[0];
int wstat;
pid_t wpid;
close(fd1[0]); /* parent doesn't need input side of pipe fd1 */
close(fd2[1]); /* parent doesn't need output side of pipe fd2 */
@ -661,7 +660,7 @@ static BOOL talk_to_smbpasswd(char *old, char *new)
/*
* Wait for smbpasswd to finish
*/
if ((wpid = sys_waitpid(pid, &wstat, 0)) < 0) {
if (sys_waitpid(pid, &wstat, 0) < 0) {
printf("<p> problem waiting");
}
@ -919,9 +918,8 @@ static void chg_passwd(void)
****************************************************************************/
static void passwd_page(void)
{
char *s, *new_name;
char *new_name;
int i;
extern char * get_user_name();
printf("<H2>Password Manager</H2>\n");
@ -962,7 +960,7 @@ static void passwd_page(void)
* If we don't have user information then there's nothing to do. It's probably
* the first time through this code.
*/
if (s = cgi_variable(user)) {
if (cgi_variable(user)) {
chg_passwd();
}