<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div><div><div><div>Hi,<br></div>You are right.<br></div>But with this warning I think Coverity is correct (not false positive).<br></div>file: ngx_unit.c<br></div>line: 3161 nxt_unit_process_use(ctx, process, -1);<br><br></div><div>If all conditions take true nxt_unit_process_use, free var process (line 2306).<br></div><div>And in line 3183, nxt_unit_process_use is called again, now with var process freed.<br><br>static void<br>nxt_unit_process_use(nxt_unit_ctx_t *ctx, nxt_unit_process_t *process, int i)<br>{<br>    long c;<br><br>    c = nxt_atomic_fetch_add(&process->use_count, i);<br>    if (i < 0 && c == -i) {<br>        nxt_unit_debug(ctx, "destroy process #%d", (int) process->pid);<br>        nxt_unit_mmaps_destroy(&process->incoming);<br>        nxt_unit_mmaps_destroy(&process->outgoing);<br>        free(process);<br>    }<br>}<br><br></div><div>Best regards,<br></div><div>Ranier Vilela<br></div></div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Em ter, 11 de jun de 2019 às 20:16, Valentin V. Bartenev <<a href="mailto:vbart@nginx.com">vbart@nginx.com</a>> escreveu:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Wednesday, 12 June 2019 01:59:37 MSK Ranier Vf wrote:<br>
> description: CID 308517 (#1 of 1): Missing unlock (LOCK)<br>
> unit: nxt_unit.c<br>
> <br>
> According Coverity Scan, missing_unlock: Returning without unlocking<br>
> lib->mutex.<br>
<br>
We use Coverity on a daily basis.  While sometimes it catches<br>
something interesting, but most of the time it has lots of false<br>
positives.<br>
<br>
> <br>
> --- c:\web\nginx\unit\a\src\nxt_unit.c    Mon Jun 10 12:47:35 2019<br>
> +++ nxt_unit.c    Tue Jun 11 19:50:59 2019<br>
> @@ -3140,6 +3140,7 @@<br>
>      }<br>
> <br>
>      nxt_unit_remove_process(ctx, process);<br>
> +    pthread_mutex_unlock(&lib->mutex);<br>
>  }<br>
> <br>
<br>
The nxt_unit_remove_process() function always unlocks this mutex.<br>
<br>
  wbr, Valentin V. Bartenev <br>
<br>
<br>
<br>
<br>
_______________________________________________<br>
unit mailing list<br>
<a href="mailto:unit@nginx.org" target="_blank">unit@nginx.org</a><br>
<a href="https://mailman.nginx.org/mailman/listinfo/unit" rel="noreferrer" target="_blank">https://mailman.nginx.org/mailman/listinfo/unit</a><br>
</blockquote></div>