diff --git a/mongoose.c b/mongoose.c index b436acf5..8cb933ef 100644 --- a/mongoose.c +++ b/mongoose.c @@ -1432,23 +1432,22 @@ void mg_http_bauth(struct mg_connection *c, const char *user, if (c->send.size < need) mg_iobuf_resize(&c->send, need); if (c->send.size >= need) { int i, n = 0; - char *buf = (char *) &c->send.buf[c->send.len + 21]; - memcpy(&buf[-21], "Authorization: Basic ", 21); // DON'T use mg_send! + char *buf = (char *) &c->send.buf[c->send.len]; + memcpy(buf, "Authorization: Basic ", 21); // DON'T use mg_send! for (i = 0; i < (int) u.len; i++) { - n = mg_base64_update(((unsigned char *) u.ptr)[i], buf, n); + n = mg_base64_update(((unsigned char *) u.ptr)[i], buf + 21, n); } if (p.len > 0) { - n = mg_base64_update(':', buf, n); + n = mg_base64_update(':', buf + 21, n); for (i = 0; i < (int) p.len; i++) { - n = mg_base64_update(((unsigned char *) p.ptr)[i], buf, n); + n = mg_base64_update(((unsigned char *) p.ptr)[i], buf + 21, n); } } - n = mg_base64_final(buf, n); + n = mg_base64_final(buf + 21, n); c->send.len += 21 + (size_t) n + 2; memcpy(&c->send.buf[c->send.len - 2], "\r\n", 2); } else { - MG_ERROR(("%lu %s cannot resize iobuf %d->%d ", c->id, c->label, - (int) c->send.size, (int) need)); + MG_ERROR(("%lu oom %d->%d ", c->id, (int) c->send.size, (int) need)); } } diff --git a/src/http.c b/src/http.c index 9db712f3..7dc0d043 100644 --- a/src/http.c +++ b/src/http.c @@ -72,23 +72,22 @@ void mg_http_bauth(struct mg_connection *c, const char *user, if (c->send.size < need) mg_iobuf_resize(&c->send, need); if (c->send.size >= need) { int i, n = 0; - char *buf = (char *) &c->send.buf[c->send.len + 21]; - memcpy(&buf[-21], "Authorization: Basic ", 21); // DON'T use mg_send! + char *buf = (char *) &c->send.buf[c->send.len]; + memcpy(buf, "Authorization: Basic ", 21); // DON'T use mg_send! for (i = 0; i < (int) u.len; i++) { - n = mg_base64_update(((unsigned char *) u.ptr)[i], buf, n); + n = mg_base64_update(((unsigned char *) u.ptr)[i], buf + 21, n); } if (p.len > 0) { - n = mg_base64_update(':', buf, n); + n = mg_base64_update(':', buf + 21, n); for (i = 0; i < (int) p.len; i++) { - n = mg_base64_update(((unsigned char *) p.ptr)[i], buf, n); + n = mg_base64_update(((unsigned char *) p.ptr)[i], buf + 21, n); } } - n = mg_base64_final(buf, n); + n = mg_base64_final(buf + 21, n); c->send.len += 21 + (size_t) n + 2; memcpy(&c->send.buf[c->send.len - 2], "\r\n", 2); } else { - MG_ERROR(("%lu %s cannot resize iobuf %d->%d ", c->id, c->label, - (int) c->send.size, (int) need)); + MG_ERROR(("%lu oom %d->%d ", c->id, (int) c->send.size, (int) need)); } }