<p></p>
<p><b>@codebrainz</b> requested changes on this pull request.</p>

<hr>

<p>In <a href="https://github.com/geany/geany/pull/2586#discussion_r489077158">src/project.c</a>:</p>
<pre style='color:#555'>> +    {
+               gboolean create_dir = dialogs_show_question_full(NULL, GTK_STOCK_OK, GTK_STOCK_CANCEL,
+                       _("Create the project's Filename directory?"),
+                       _("The path \"%s\" does not exist."),
+                       project_file_dirname);
+
+               /* if the project file's directory doesn't exist and the user wants to try and create it */
+               if (create_dir)
+               {
+                       /* try and create the project file's directory recursively */
+                       err_code = utils_mkdir(project_file_dirname, TRUE);
+                       if (err_code != 0)
+                       {
+                               SHOW_ERR1(_("Filename path could not be created (%s)."), g_strerror(err_code));
+                               gtk_widget_grab_focus(e->file_name);
+                               utils_free_pointers(2, project_file_dirname, locale_filename, NULL);
</pre>
<p>It wasn't leaking <code>locale_filename</code>, it's used in the existing code further down, so doing this will cause it to access a dangling pointer and crash at best.</p>

<hr>

<p>In <a href="https://github.com/geany/geany/pull/2586#discussion_r489077695">src/project.c</a>:</p>
<pre style='color:#555'>> +            if (create_dir)
+               {
+                       /* try and create the project file's directory recursively */
+                       err_code = utils_mkdir(project_file_dirname, TRUE);
+                       if (err_code != 0)
+                       {
+                               SHOW_ERR1(_("Filename path could not be created (%s)."), g_strerror(err_code));
+                               gtk_widget_grab_focus(e->file_name);
+                               utils_free_pointers(2, project_file_dirname, locale_filename, NULL);
+                               return FALSE;
+                       }
+               }
+               else
+               {
+                       gtk_widget_grab_focus(e->file_name);
+                       utils_free_pointers(2, project_file_dirname, locale_filename, NULL);
</pre>
<p>Same here for freeing <code>locale_filename</code>.</p>

<hr>

<p>In <a href="https://github.com/geany/geany/pull/2586#discussion_r489078772">src/project.c</a>:</p>
<pre style='color:#555'>> +            else
+               {
+                       gtk_widget_grab_focus(e->file_name);
+                       utils_free_pointers(2, project_file_dirname, locale_filename, NULL);
+                       return FALSE;
+               }
</pre>
<p>I haven't thought about this much (hence the TODO in my example code), are you sure this is the best thing to do?</p>
<p>I get that the path is tested above, but what if the directory is created in the meantime (ex. the user leaves the question dialog box up and create the directory using their file manager or the terminal)?</p>
<p>I could be wrong, but it seems like falling back to the old behaviour here would be ok, no?</p>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="https://github.com/geany/geany/pull/2586#pullrequestreview-489178213">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/AAIOWJ6YK4JKQIWQFWLEIJ3SF74BDANCNFSM4RLUS2GA">unsubscribe</a>.<img src="https://github.com/notifications/beacon/AAIOWJ44WHRQIEJ2ADR63XDSF74BDA5CNFSM4RLUS2GKYY3PNVWWK3TUL52HS4DFWFIHK3DMKJSXC5LFON2FEZLWNFSXPKTDN5WW2ZLOORPWSZGODUUEIZI.gif" height="1" width="1" alt="" /></p>
<script type="application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/geany/geany/pull/2586#pullrequestreview-489178213",
"url": "https://github.com/geany/geany/pull/2586#pullrequestreview-489178213",
"name": "View Pull Request"
},
"description": "View this Pull Request on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]</script>