Fix bug 5398
authorVolker Lendecke <vl@samba.org>
Sat, 19 Apr 2008 11:08:14 +0000 (13:08 +0200)
committerVolker Lendecke <vl@samba.org>
Sat, 19 Apr 2008 15:04:09 +0000 (17:04 +0200)
Thanks to Jason Mader for sending the compiler output :-)

Volker

source/smbd/chgpasswd.c

index b2b082363f94d157296fc42e9cda7db33b20e406..2596e7338031144de1ac593c848bba0b8d9d039f 100644 (file)
@@ -249,6 +249,7 @@ static int expect(int master, char *issue, char *expected)
        bool match = False;
 
        for (attempts = 0; attempts < 2; attempts++) {
        bool match = False;
 
        for (attempts = 0; attempts < 2; attempts++) {
+               NTSTATUS status;
                if (!strequal(issue, ".")) {
                        if (lp_passwd_chat_debug())
                                DEBUG(100, ("expect: sending [%s]\n", issue));
                if (!strequal(issue, ".")) {
                        if (lp_passwd_chat_debug())
                                DEBUG(100, ("expect: sending [%s]\n", issue));
@@ -269,7 +270,6 @@ static int expect(int master, char *issue, char *expected)
                buffer[nread] = 0;
 
                while (True) {
                buffer[nread] = 0;
 
                while (True) {
-                       NTSTATUS status;
                        status = read_socket_with_timeout(
                                master, buffer + nread, 1,
                                sizeof(buffer) - nread - 1,
                        status = read_socket_with_timeout(
                                master, buffer + nread, 1,
                                sizeof(buffer) - nread - 1,
@@ -305,8 +305,8 @@ static int expect(int master, char *issue, char *expected)
                if (match)
                        break;
 
                if (match)
                        break;
 
-               if (len < 0) {
-                       DEBUG(2, ("expect: %s\n", strerror(errno)));
+               if (!NT_STATUS_IS_OK(status)) {
+                       DEBUG(2, ("expect: %s\n", nt_errstr(status)));
                        return False;
                }
        }
                        return False;
                }
        }