Parcourir la source

libdpkg: Check for depnamelength being 0 instead of depname[0] being NUL

Guillem Jover il y a 14 ans
Parent
commit
dda789127b
1 fichiers modifiés avec 6 ajouts et 4 suppressions
  1. 6 4
      lib/dpkg/fields.c

+ 6 - 4
lib/dpkg/fields.c

@@ -390,13 +390,15 @@ f_dependency(struct pkginfo *pigp, struct pkgbin *pifp,
 	p++;
 	p++;
       }
       }
       depnamelength= p - depnamestart ;
       depnamelength= p - depnamestart ;
-      varbuf_reset(&depname);
-      varbuf_add_buf(&depname, depnamestart, depnamelength);
-      varbuf_end_str(&depname);
-      if (!depname.buf[0])
+      if (depnamelength == 0)
         parse_error(ps,
         parse_error(ps,
                     _("`%s' field, missing package name, or garbage where "
                     _("`%s' field, missing package name, or garbage where "
                       "package name expected"), fip->name);
                       "package name expected"), fip->name);
+
+      varbuf_reset(&depname);
+      varbuf_add_buf(&depname, depnamestart, depnamelength);
+      varbuf_end_str(&depname);
+
       emsg = pkg_name_is_illegal(depname.buf, NULL);
       emsg = pkg_name_is_illegal(depname.buf, NULL);
       if (emsg)
       if (emsg)
         parse_error(ps,
         parse_error(ps,