Merge git://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf
[linux-2.6-microblaze.git] / scripts / dtc / util.c
index 40274fb..507f012 100644 (file)
@@ -33,6 +33,17 @@ char *xstrdup(const char *s)
        return d;
 }
 
+char *xstrndup(const char *s, size_t n)
+{
+       size_t len = strnlen(s, n) + 1;
+       char *d = xmalloc(len);
+
+       memcpy(d, s, len - 1);
+       d[len - 1] = '\0';
+
+       return d;
+}
+
 int xavsprintf_append(char **strp, const char *fmt, va_list ap)
 {
        int n, size = 0;        /* start with 128 bytes */
@@ -353,11 +364,11 @@ int utilfdt_decode_type(const char *fmt, int *type, int *size)
        }
 
        /* we should now have a type */
-       if ((*fmt == '\0') || !strchr("iuxs", *fmt))
+       if ((*fmt == '\0') || !strchr("iuxsr", *fmt))
                return -1;
 
        /* convert qualifier (bhL) to byte size */
-       if (*fmt != 's')
+       if (*fmt != 's' && *fmt != 'r')
                *size = qualifier == 'b' ? 1 :
                                qualifier == 'h' ? 2 :
                                qualifier == 'l' ? 4 : -1;