fix warnings
diff --git a/libasn1parser/asn1p_integer.c b/libasn1parser/asn1p_integer.c
index 2d06fb3..97e6465 100644
--- a/libasn1parser/asn1p_integer.c
+++ b/libasn1parser/asn1p_integer.c
@@ -114,7 +114,7 @@
 
     if(v >= LONG_MIN && v < LONG_MAX) {
         int ret = snprintf(buf, size, "%ld", (long)v);
-        if(ret < 0 || ret >= size) {
+        if(ret < 0 || (size_t)ret >= size) {
             return -1;
         }
         return ret;
@@ -155,9 +155,10 @@
     assert(head);
     int ret = snprintf(tmp_buf, sizeof(tmp_buf), "%s%s%s", sign ? "-" : "",
                        head, rest);
-    assert(ret > 0 && ret < sizeof(tmp_buf));
-    if(size <= ret)
+    if(ret < 0 || (size_t)ret >= size) {
+        assert(ret > 0 && (size_t)ret < sizeof(tmp_buf));
         return -1;
+    }
     memcpy(buf, tmp_buf, ret);
     buf[ret] = '\0';
     return ret;