Fossil SCM

Avoid NULL dereference when importing incremental Subversion dumps. This may not be the correct solution, but at least it's not outright crashing anymore.

andygoth 2016-05-14 04:32 andygoth-svn-import
Commit 2ade560ea02f20ff272ddb63ca80d5cc340377db
1 file changed +7 -5
+7 -5
--- src/import.c
+++ src/import.c
@@ -987,15 +987,17 @@
987987
" WHERE trev<%d AND tbranch=%d",
988988
gsvn.rev, branchId);
989989
}
990990
if( parentRid>0 ){
991991
pParentManifest = manifest_get(parentRid, CFTYPE_MANIFEST, 0);
992
- pParentFile = manifest_file_next(pParentManifest, 0);
993
- parentBranch = db_int(0, "SELECT tbranch FROM xrevisions WHERE trid=%d",
994
- parentRid);
995
- if( parentBranch!=branchId && branchType!=SVN_TAG ){
996
- sameAsParent = 0;
992
+ if( pParentManifest ){
993
+ pParentFile = manifest_file_next(pParentManifest, 0);
994
+ parentBranch = db_int(0, "SELECT tbranch FROM xrevisions WHERE trid=%d",
995
+ parentRid);
996
+ if( parentBranch!=branchId && branchType!=SVN_TAG ){
997
+ sameAsParent = 0;
998
+ }
997999
}
9981000
}
9991001
if( mergeRid<MAX_INT_32 ){
10001002
if( gsvn.zComment ){
10011003
blob_appendf(&manifest, "C %F\n", gsvn.zComment);
10021004
--- src/import.c
+++ src/import.c
@@ -987,15 +987,17 @@
987 " WHERE trev<%d AND tbranch=%d",
988 gsvn.rev, branchId);
989 }
990 if( parentRid>0 ){
991 pParentManifest = manifest_get(parentRid, CFTYPE_MANIFEST, 0);
992 pParentFile = manifest_file_next(pParentManifest, 0);
993 parentBranch = db_int(0, "SELECT tbranch FROM xrevisions WHERE trid=%d",
994 parentRid);
995 if( parentBranch!=branchId && branchType!=SVN_TAG ){
996 sameAsParent = 0;
 
 
997 }
998 }
999 if( mergeRid<MAX_INT_32 ){
1000 if( gsvn.zComment ){
1001 blob_appendf(&manifest, "C %F\n", gsvn.zComment);
1002
--- src/import.c
+++ src/import.c
@@ -987,15 +987,17 @@
987 " WHERE trev<%d AND tbranch=%d",
988 gsvn.rev, branchId);
989 }
990 if( parentRid>0 ){
991 pParentManifest = manifest_get(parentRid, CFTYPE_MANIFEST, 0);
992 if( pParentManifest ){
993 pParentFile = manifest_file_next(pParentManifest, 0);
994 parentBranch = db_int(0, "SELECT tbranch FROM xrevisions WHERE trid=%d",
995 parentRid);
996 if( parentBranch!=branchId && branchType!=SVN_TAG ){
997 sameAsParent = 0;
998 }
999 }
1000 }
1001 if( mergeRid<MAX_INT_32 ){
1002 if( gsvn.zComment ){
1003 blob_appendf(&manifest, "C %F\n", gsvn.zComment);
1004

Keyboard Shortcuts

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