diff --git a/libav/utils.c b/libav/utils.c
index 8520656a1b5bed167cc4afec29e9849eea84991d..161e72ceef34d49bdda3a454d26db5601a73a998 100644
--- a/libav/utils.c
+++ b/libav/utils.c
@@ -124,6 +124,18 @@ void nstrcpy(char *buf, int buf_size, const char *str)
     *q = '\0';
 }
 
+void strlcpy(char *dst, const char *src, int len)
+{
+    int slen = strlen(src) + 1;
+
+    if (slen <= len) {
+        memcpy(dst, src, slen);
+    } else {
+        memcpy(dst, src, len - 1);
+        dst[len - 1] = 0;
+    }
+}
+
 void register_all(void)
 {
     avcodec_init();
@@ -561,6 +573,7 @@ int find_info_tag(char *arg, int arg_size, const char *tag1, const char *info)
             return 1;
         if (*p != '&')
             break;
+        p++;
     }
     return 0;
 }