REXDENT();
}
+/*
+ * Write a string to an fd, followed by "\n"
+ */
static int write_all(int fd, char const *buf, int len) {
int rv, done=0;
break;
done += rv;
}
+ rv = write(fd, "\n", 1);
+ if (rv <= 0) return rv;
return done;
}
goto ntlm_auth_err;
}
- buf[len++] = '\n';
- buf[len] = '\0';
-
if (write_all(to_child, buf, len) != len) {
REDEBUG("Failed to write username to child");
goto ntlm_auth_err;
goto ntlm_auth_err;
}
- buf[len++] = '\n';
- buf[len] = '\0';
-
if (write_all(to_child, buf, len) != len) {
REDEBUG("Failed to write domain to child");
goto ntlm_auth_err;
/* now the password blobs */
len = snprintf(buf, sizeof(buf), "new-nt-password-blob: ");
fr_base16_encode(&FR_SBUFF_OUT(buf + len, sizeof(buf) - len), &FR_DBUFF_TMP(new_nt_password, 516));
- buf[len+1032] = '\n';
- buf[len+1033] = '\0';
len = strlen(buf);
if (write_all(to_child, buf, len) != len) {
RDEBUG2("failed to write new password blob to child");
len = snprintf(buf, sizeof(buf), "old-nt-hash-blob: ");
fr_base16_encode(&FR_SBUFF_OUT(buf + len, sizeof(buf) - len), &FR_DBUFF_TMP(old_nt_hash, NT_DIGEST_LENGTH));
- buf[len+32] = '\n';
- buf[len+33] = '\0';
len = strlen(buf);
if (write_all(to_child, buf, len) != len) {
REDEBUG("Failed to write old hash blob to child");
* In current samba versions, failure to supply empty LM password/hash
* blobs causes the change to fail.
*/
- len = snprintf(buf, sizeof(buf), "new-lm-password-blob: %01032i\n", 0);
+ len = snprintf(buf, sizeof(buf), "new-lm-password-blob: %01032i", 0);
if (write_all(to_child, buf, len) != len) {
REDEBUG("Failed to write dummy LM password to child");
goto ntlm_auth_err;
}
- len = snprintf(buf, sizeof(buf), "old-lm-hash-blob: %032i\n", 0);
+ len = snprintf(buf, sizeof(buf), "old-lm-hash-blob: %032i", 0);
if (write_all(to_child, buf, len) != len) {
REDEBUG("Failed to write dummy LM hash to child");
goto ntlm_auth_err;
}
- if (write_all(to_child, ".\n", 2) != 2) {
+ if (write_all(to_child, ".", 1) != 1) {
REDEBUG("Failed to send finish to child");
goto ntlm_auth_err;
}