Fossil SCM
Resolved /chat-poll crash when xfrom is null, as described in [forum:/forumpost/e0be0eeb4c | forum post e0be0eeb4c].
Commit
92b5cc21ce90053f4272c2e3a23e1fa459dfee36093079fb28540a54731d3903
Parent
61132cefacba2ea…
1 file changed
+9
-2
+9
-2
| --- src/chat.c | ||
| +++ src/chat.c | ||
| @@ -598,12 +598,19 @@ | ||
| 598 | 598 | blob_appendf(&json, "{\"msgid\":%d,", id); |
| 599 | 599 | blob_appendf(&json, "\"mtime\":\"%.10sT%sZ\",", zDate, zDate+11); |
| 600 | 600 | if( zLMtime && zLMtime[0] ){ |
| 601 | 601 | blob_appendf(&json, "\"lmtime\":%!j,", zLMtime); |
| 602 | 602 | } |
| 603 | - blob_appendf(&json, "\"xfrom\":%!j,", zFrom); | |
| 604 | - blob_appendf(&json, "\"uclr\":%!j,", user_color(zFrom)); | |
| 603 | + blob_append(&json, "\"xfrom\":", -1); | |
| 604 | + if(zFrom){ | |
| 605 | + blob_appendf(&json, "%!j,", zFrom); | |
| 606 | + }else{ | |
| 607 | + /* see https://fossil-scm.org/forum/forumpost/e0be0eeb4c */ | |
| 608 | + blob_appendf(&json, "null,"); | |
| 609 | + } | |
| 610 | + blob_appendf(&json, "\"uclr\":%!j,", | |
| 611 | + user_color(zFrom ? zFrom : "nobody")); | |
| 605 | 612 | |
| 606 | 613 | zMsg = chat_format_to_html(zRawMsg ? zRawMsg : ""); |
| 607 | 614 | blob_appendf(&json, "\"xmsg\":%!j,", zMsg); |
| 608 | 615 | fossil_free(zMsg); |
| 609 | 616 | |
| 610 | 617 |
| --- src/chat.c | |
| +++ src/chat.c | |
| @@ -598,12 +598,19 @@ | |
| 598 | blob_appendf(&json, "{\"msgid\":%d,", id); |
| 599 | blob_appendf(&json, "\"mtime\":\"%.10sT%sZ\",", zDate, zDate+11); |
| 600 | if( zLMtime && zLMtime[0] ){ |
| 601 | blob_appendf(&json, "\"lmtime\":%!j,", zLMtime); |
| 602 | } |
| 603 | blob_appendf(&json, "\"xfrom\":%!j,", zFrom); |
| 604 | blob_appendf(&json, "\"uclr\":%!j,", user_color(zFrom)); |
| 605 | |
| 606 | zMsg = chat_format_to_html(zRawMsg ? zRawMsg : ""); |
| 607 | blob_appendf(&json, "\"xmsg\":%!j,", zMsg); |
| 608 | fossil_free(zMsg); |
| 609 | |
| 610 |
| --- src/chat.c | |
| +++ src/chat.c | |
| @@ -598,12 +598,19 @@ | |
| 598 | blob_appendf(&json, "{\"msgid\":%d,", id); |
| 599 | blob_appendf(&json, "\"mtime\":\"%.10sT%sZ\",", zDate, zDate+11); |
| 600 | if( zLMtime && zLMtime[0] ){ |
| 601 | blob_appendf(&json, "\"lmtime\":%!j,", zLMtime); |
| 602 | } |
| 603 | blob_append(&json, "\"xfrom\":", -1); |
| 604 | if(zFrom){ |
| 605 | blob_appendf(&json, "%!j,", zFrom); |
| 606 | }else{ |
| 607 | /* see https://fossil-scm.org/forum/forumpost/e0be0eeb4c */ |
| 608 | blob_appendf(&json, "null,"); |
| 609 | } |
| 610 | blob_appendf(&json, "\"uclr\":%!j,", |
| 611 | user_color(zFrom ? zFrom : "nobody")); |
| 612 | |
| 613 | zMsg = chat_format_to_html(zRawMsg ? zRawMsg : ""); |
| 614 | blob_appendf(&json, "\"xmsg\":%!j,", zMsg); |
| 615 | fossil_free(zMsg); |
| 616 | |
| 617 |