eolian/generator: fix a false positive in eolian types_gen
authorDaniel Kolesa <d.kolesa@osg.samsung.com>
Mon, 8 Jun 2015 09:56:54 +0000 (10:56 +0100)
committerDaniel Kolesa <d.kolesa@osg.samsung.com>
Mon, 8 Jun 2015 09:56:54 +0000 (10:56 +0100)
While it is true that 'strrchr' may return NULL, in this case it
never will (there is always a newline). Either way, silence Coverity.

Fixes CID 1304558.

src/bin/eolian/types_generator.c

index 93740e2..3bdd5d3 100644 (file)
@@ -101,11 +101,15 @@ _type_generate(const Eolian_Type *tp, Eina_Bool full)
                    if (fdesc) eina_strbuf_append_printf(buf, " /** %s */", fdesc);
                    else if (fdoc)
                      {
-                        Eina_Strbuf *fbuf = docs_generate_full(fdoc,
-                            strlen(strrchr(eina_strbuf_string_get(buf), '\n')));
-                        if (fbuf) eina_strbuf_append_printf(buf, " %s",
-                            eina_strbuf_string_get(fbuf));
-                        eina_strbuf_free(fbuf);
+                        const char *nl = strrchr(eina_strbuf_string_get(buf), '\n');
+                        if (nl)
+                          {
+                             Eina_Strbuf *fbuf = docs_generate_full(fdoc, strlen(nl));
+                             if (fbuf)
+                               eina_strbuf_append_printf(buf, " %s",
+                                                         eina_strbuf_string_get(fbuf));
+                             eina_strbuf_free(fbuf);
+                          }
                      }
                    eina_strbuf_append(buf, "\n");
                 }
@@ -165,11 +169,15 @@ _type_generate(const Eolian_Type *tp, Eina_Bool full)
                    if (fdesc) eina_strbuf_append_printf(buf, " /** %s */", fdesc);
                    else if (fdoc)
                      {
-                        Eina_Strbuf *fbuf = docs_generate_full(fdoc,
-                            strlen(strrchr(eina_strbuf_string_get(buf), '\n')));
-                        if (fbuf) eina_strbuf_append_printf(buf, " %s",
-                            eina_strbuf_string_get(fbuf));
-                        eina_strbuf_free(fbuf);
+                        const char *nl = strrchr(eina_strbuf_string_get(buf), '\n');
+                        if (nl)
+                          {
+                             Eina_Strbuf *fbuf = docs_generate_full(fdoc, strlen(nl));
+                             if (fbuf)
+                               eina_strbuf_append_printf(buf, " %s",
+                                                         eina_strbuf_string_get(fbuf));
+                             eina_strbuf_free(fbuf);
+                          }
                      }
                    eina_strbuf_append(buf, "\n");
                 }