mirror of
https://github.com/cesanta/mongoose.git
synced 2025-06-24 21:30:39 +08:00
Fix #1444 - clang warns on undefined behavior with null pointers
This commit is contained in:
parent
9fd80fd136
commit
c53e2fcc14
@ -1683,7 +1683,7 @@ void mg_http_delete_chunk(struct mg_connection *c, struct mg_http_message *hm) {
|
|||||||
static void http_cb(struct mg_connection *c, int ev, void *evd, void *fnd) {
|
static void http_cb(struct mg_connection *c, int ev, void *evd, void *fnd) {
|
||||||
if (ev == MG_EV_READ || ev == MG_EV_CLOSE) {
|
if (ev == MG_EV_READ || ev == MG_EV_CLOSE) {
|
||||||
struct mg_http_message hm;
|
struct mg_http_message hm;
|
||||||
for (;;) {
|
while (c->recv.buf != NULL && c->recv.len > 0) {
|
||||||
int n = mg_http_parse((char *) c->recv.buf, c->recv.len, &hm);
|
int n = mg_http_parse((char *) c->recv.buf, c->recv.len, &hm);
|
||||||
bool is_chunked = n > 0 && mg_is_chunked(&hm);
|
bool is_chunked = n > 0 && mg_is_chunked(&hm);
|
||||||
if (ev == MG_EV_CLOSE) {
|
if (ev == MG_EV_CLOSE) {
|
||||||
@ -4291,8 +4291,9 @@ static size_t mg_nce(const char *s, size_t n, size_t ofs, size_t *koff,
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool mg_commalist(struct mg_str *s, struct mg_str *k, struct mg_str *v) {
|
bool mg_commalist(struct mg_str *s, struct mg_str *k, struct mg_str *v) {
|
||||||
size_t koff = 0, klen = 0, voff = 0, vlen = 0;
|
size_t koff = 0, klen = 0, voff = 0, vlen = 0, off = 0;
|
||||||
size_t off = mg_nce(s->ptr, s->len, 0, &koff, &klen, &voff, &vlen);
|
if (s->ptr == NULL || s->len == 0) return 0;
|
||||||
|
off = mg_nce(s->ptr, s->len, 0, &koff, &klen, &voff, &vlen);
|
||||||
if (k != NULL) *k = mg_str_n(s->ptr + koff, klen);
|
if (k != NULL) *k = mg_str_n(s->ptr + koff, klen);
|
||||||
if (v != NULL) *v = mg_str_n(s->ptr + voff, vlen);
|
if (v != NULL) *v = mg_str_n(s->ptr + voff, vlen);
|
||||||
*s = mg_str_n(s->ptr + off, s->len - off);
|
*s = mg_str_n(s->ptr + off, s->len - off);
|
||||||
|
@ -919,7 +919,7 @@ void mg_http_delete_chunk(struct mg_connection *c, struct mg_http_message *hm) {
|
|||||||
static void http_cb(struct mg_connection *c, int ev, void *evd, void *fnd) {
|
static void http_cb(struct mg_connection *c, int ev, void *evd, void *fnd) {
|
||||||
if (ev == MG_EV_READ || ev == MG_EV_CLOSE) {
|
if (ev == MG_EV_READ || ev == MG_EV_CLOSE) {
|
||||||
struct mg_http_message hm;
|
struct mg_http_message hm;
|
||||||
for (;;) {
|
while (c->recv.buf != NULL && c->recv.len > 0) {
|
||||||
int n = mg_http_parse((char *) c->recv.buf, c->recv.len, &hm);
|
int n = mg_http_parse((char *) c->recv.buf, c->recv.len, &hm);
|
||||||
bool is_chunked = n > 0 && mg_is_chunked(&hm);
|
bool is_chunked = n > 0 && mg_is_chunked(&hm);
|
||||||
if (ev == MG_EV_CLOSE) {
|
if (ev == MG_EV_CLOSE) {
|
||||||
|
@ -113,8 +113,9 @@ static size_t mg_nce(const char *s, size_t n, size_t ofs, size_t *koff,
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool mg_commalist(struct mg_str *s, struct mg_str *k, struct mg_str *v) {
|
bool mg_commalist(struct mg_str *s, struct mg_str *k, struct mg_str *v) {
|
||||||
size_t koff = 0, klen = 0, voff = 0, vlen = 0;
|
size_t koff = 0, klen = 0, voff = 0, vlen = 0, off = 0;
|
||||||
size_t off = mg_nce(s->ptr, s->len, 0, &koff, &klen, &voff, &vlen);
|
if (s->ptr == NULL || s->len == 0) return 0;
|
||||||
|
off = mg_nce(s->ptr, s->len, 0, &koff, &klen, &voff, &vlen);
|
||||||
if (k != NULL) *k = mg_str_n(s->ptr + koff, klen);
|
if (k != NULL) *k = mg_str_n(s->ptr + koff, klen);
|
||||||
if (v != NULL) *v = mg_str_n(s->ptr + voff, vlen);
|
if (v != NULL) *v = mg_str_n(s->ptr + voff, vlen);
|
||||||
*s = mg_str_n(s->ptr + off, s->len - off);
|
*s = mg_str_n(s->ptr + off, s->len - off);
|
||||||
|
Loading…
Reference in New Issue
Block a user