Fossil SCM

Avoid a NULL pointer deref in vfile_build() when a delta manifest contains a deleted file.

drh 2011-01-03 12:15 trunk
Commit a35e8c0db14c09a7d7b3079c932e0620a292bf03
1 file changed +1
--- src/vfile.c
+++ src/vfile.c
@@ -114,10 +114,11 @@
114114
"INSERT INTO vfile(vid,rid,mrid,pathname) "
115115
" VALUES(:vid,:id,:id,:name)");
116116
db_bind_int(&ins, ":vid", vid);
117117
manifest_file_rewind(p);
118118
while( (pFile = manifest_file_next(p,0))!=0 ){
119
+ if( pFile->zUuid==0 ) continue;
119120
rid = uuid_to_rid(pFile->zUuid, 0);
120121
vfile_verify_not_phantom(rid, pFile->zName, pFile->zUuid);
121122
db_bind_int(&ins, ":id", rid);
122123
db_bind_text(&ins, ":name", pFile->zName);
123124
db_step(&ins);
124125
--- src/vfile.c
+++ src/vfile.c
@@ -114,10 +114,11 @@
114 "INSERT INTO vfile(vid,rid,mrid,pathname) "
115 " VALUES(:vid,:id,:id,:name)");
116 db_bind_int(&ins, ":vid", vid);
117 manifest_file_rewind(p);
118 while( (pFile = manifest_file_next(p,0))!=0 ){
 
119 rid = uuid_to_rid(pFile->zUuid, 0);
120 vfile_verify_not_phantom(rid, pFile->zName, pFile->zUuid);
121 db_bind_int(&ins, ":id", rid);
122 db_bind_text(&ins, ":name", pFile->zName);
123 db_step(&ins);
124
--- src/vfile.c
+++ src/vfile.c
@@ -114,10 +114,11 @@
114 "INSERT INTO vfile(vid,rid,mrid,pathname) "
115 " VALUES(:vid,:id,:id,:name)");
116 db_bind_int(&ins, ":vid", vid);
117 manifest_file_rewind(p);
118 while( (pFile = manifest_file_next(p,0))!=0 ){
119 if( pFile->zUuid==0 ) continue;
120 rid = uuid_to_rid(pFile->zUuid, 0);
121 vfile_verify_not_phantom(rid, pFile->zName, pFile->zUuid);
122 db_bind_int(&ins, ":id", rid);
123 db_bind_text(&ins, ":name", pFile->zName);
124 db_step(&ins);
125

Keyboard Shortcuts

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