libopkg: accept alternative notation for "Replaces" control field
authorJo-Philipp Wich <jo@mein.io>
Fri, 18 Jan 2019 08:01:10 +0000 (09:01 +0100)
committerJo-Philipp Wich <jo@mein.io>
Fri, 18 Jan 2019 08:01:10 +0000 (09:01 +0100)
The presence of a "Replaces:" tag in any package feed list will cause
opkg prior to "d217daf libopkg: fix replacelist parsing and writing"
to segfault while parsing such a list.

Add a hack which lets opkg recognize a "Replace2" field and handle
it identically to "Replaces".

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
libopkg/pkg_parse.c

index 0baa4db..f6199da 100644 (file)
@@ -302,7 +302,7 @@ int pkg_parse_line(void *ptr, char *line, uint mask)
        case 'R':
                if ((mask & PFM_RECOMMENDS) && is_field("Recommends", line))
                        parse_deplist(pkg, RECOMMEND, line + strlen("Recommends") + 1);
-               else if ((mask & PFM_REPLACES) && is_field("Replaces", line))
+               else if ((mask & PFM_REPLACES) && (is_field("Replaces", line) || is_field("Replace2", line)))
                        parse_replacelist(pkg, line + strlen("Replaces") + 1);
                break;