Fossil SCM

Add a NULL check where a change from [4c3e1728e1b1a9cb] inadvertently changed the semantics from NULL=="" to NULL==NULL, triggering a null pointer deref via backlinks parsing. Triggered by rebuild when encountering a tag with no value.

stephan 2025-08-04 23:58 trunk
Commit 441264b759d9e07a78f3715be919b72fc64a4ddef9a94e920f3025c0be7d17ba
1 file changed +1 -1
+1 -1
--- src/tag.c
+++ src/tag.c
@@ -218,11 +218,11 @@
218218
}
219219
}
220220
if( zCol ){
221221
db_multi_exec("UPDATE event SET \"%w\"=%Q WHERE objid=%d",
222222
zCol, zValue, rid);
223
- if( tagid==TAG_COMMENT ){
223
+ if( tagid==TAG_COMMENT && zValue!=0 ){
224224
char *zCopy = fossil_strdup(zValue);
225225
backlink_extract(zCopy, MT_NONE, rid, BKLNK_COMMENT, mtime, 1);
226226
free(zCopy);
227227
}
228228
}
229229
--- src/tag.c
+++ src/tag.c
@@ -218,11 +218,11 @@
218 }
219 }
220 if( zCol ){
221 db_multi_exec("UPDATE event SET \"%w\"=%Q WHERE objid=%d",
222 zCol, zValue, rid);
223 if( tagid==TAG_COMMENT ){
224 char *zCopy = fossil_strdup(zValue);
225 backlink_extract(zCopy, MT_NONE, rid, BKLNK_COMMENT, mtime, 1);
226 free(zCopy);
227 }
228 }
229
--- src/tag.c
+++ src/tag.c
@@ -218,11 +218,11 @@
218 }
219 }
220 if( zCol ){
221 db_multi_exec("UPDATE event SET \"%w\"=%Q WHERE objid=%d",
222 zCol, zValue, rid);
223 if( tagid==TAG_COMMENT && zValue!=0 ){
224 char *zCopy = fossil_strdup(zValue);
225 backlink_extract(zCopy, MT_NONE, rid, BKLNK_COMMENT, mtime, 1);
226 free(zCopy);
227 }
228 }
229

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button