Browse Source

symbolic exports: fix ReleaseStringUTFChars call on null pointer

In case that no export_name is passed to one of the PM_Export..., PS_Export.... functions,
ReleaseStringUTFChars() would be called even though there was no previous call to
GetStringUTFChars(), leading to a SEGFAULT.

This is for robustness, PRISM always passes an export_name string.
master
Joachim Klein 8 years ago
parent
commit
f767eb70d0
  1. 2
      prism/src/mtbdd/PM_ExportLabels.cc
  2. 2
      prism/src/mtbdd/PM_ExportMatrix.cc
  3. 2
      prism/src/mtbdd/PM_ExportVector.cc
  4. 2
      prism/src/sparse/PS_ExportMatrix.cc
  5. 2
      prism/src/sparse/PS_ExportSubMDP.cc

2
prism/src/mtbdd/PM_ExportLabels.cc

@ -127,7 +127,7 @@ jstring fn // filename
// close file, etc.
if (export_file) fclose(export_file);
env->ReleaseStringUTFChars(na, export_name);
if (na) env->ReleaseStringUTFChars(na, export_name);
return 0;
}

2
prism/src/mtbdd/PM_ExportMatrix.cc

@ -86,7 +86,7 @@ jstring fn // filename
// close file, etc.
if (export_file) fclose(export_file);
env->ReleaseStringUTFChars(na, export_name);
if (na) env->ReleaseStringUTFChars(na, export_name);
return 0;
}

2
prism/src/mtbdd/PM_ExportVector.cc

@ -76,7 +76,7 @@ jstring fn // filename
// close file, etc.
if (export_file) fclose(export_file);
env->ReleaseStringUTFChars(na, export_name);
if (na) env->ReleaseStringUTFChars(na, export_name);
return 0;
}

2
prism/src/sparse/PS_ExportMatrix.cc

@ -162,7 +162,7 @@ jstring fn // filename
// close file, etc.
if (export_file) fclose(export_file);
env->ReleaseStringUTFChars(na, export_name);
if (na) env->ReleaseStringUTFChars(na, export_name);
// catch exceptions: return (undocumented) error code for memout
} catch (std::bad_alloc e) {

2
prism/src/sparse/PS_ExportSubMDP.cc

@ -120,7 +120,7 @@ jstring fn // filename
// close file, etc.
if (export_file) fclose(export_file);
env->ReleaseStringUTFChars(na, export_name);
if (na) env->ReleaseStringUTFChars(na, export_name);
// catch exceptions: return (undocumented) error code for memout
} catch (std::bad_alloc e) {

Loading…
Cancel
Save