From b06727d2959e22cafe3487a23eaf60c12c0cba06 Mon Sep 17 00:00:00 2001
From: lucas <lucas.gerads@aixcon.de>
Date: Sat, 11 Jan 2025 11:03:03 -0500
Subject: [PATCH] Eeschema sim dialog: Fix kicad crash when spice model
 corrupted

---
 eeschema/dialogs/dialog_sim_model.cpp | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/eeschema/dialogs/dialog_sim_model.cpp b/eeschema/dialogs/dialog_sim_model.cpp
index fa85fa58f9..1abf19757f 100644
--- a/eeschema/dialogs/dialog_sim_model.cpp
+++ b/eeschema/dialogs/dialog_sim_model.cpp
@@ -845,10 +845,13 @@ bool DIALOG_SIM_MODEL<T>::loadLibrary( const wxString& aLibraryPath, REPORTER& a
     m_modelListBoxEntryToLibraryIdx.clear();
     wxArrayString modelNames;
 
+    bool modelNameExists = false;
     for( const auto& [name, model] : library()->GetModels() )
     {
         modelNames.Add( name );
         m_modelListBoxEntryToLibraryIdx[name] = m_modelListBoxEntryToLibraryIdx.size();
+        if( name == modelName )
+            modelNameExists = true;
     }
 
     modelNames.Sort();
@@ -856,6 +859,13 @@ bool DIALOG_SIM_MODEL<T>::loadLibrary( const wxString& aLibraryPath, REPORTER& a
     m_modelListBox->Clear();
     m_modelListBox->Append( modelNames );
 
+    if( !modelNameExists )
+    {
+        m_infoBar->ShowMessage(
+                wxString::Format( _( "No model named '%s' in '%s'." ), modelName, aLibraryPath ) );
+        return false;
+    }
+
     if( isIbisLoaded() )
     {
         wxArrayString emptyArray;