Fixed a xbps_pkgpattern_name() crash and a test to reproduce it (found by Gottox).
This commit is contained in:
parent
596a8c199f
commit
2fa0d56658
3
NEWS
3
NEWS
@ -1,5 +1,8 @@
|
|||||||
xbps-0.32 (???):
|
xbps-0.32 (???):
|
||||||
|
|
||||||
|
* Fixed a bug in xbps_pkgpattern_name() where a string with some special
|
||||||
|
chars would result in a crash (reported by Gottox).
|
||||||
|
|
||||||
* Do the package removal in two phases: the first phase checks the
|
* Do the package removal in two phases: the first phase checks the
|
||||||
user has write permission to the entries being removed, if this
|
user has write permission to the entries being removed, if this
|
||||||
succeeds then the package removal is performed.
|
succeeds then the package removal is performed.
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*-
|
/*-
|
||||||
* Copyright (c) 2008-2013 Juan Romero Pardines.
|
* Copyright (c) 2008-2014 Juan Romero Pardines.
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -169,6 +169,9 @@ xbps_pkgpattern_name(const char *pkg)
|
|||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
len = strlen(pkg) - strlen(res) + 1;
|
len = strlen(pkg) - strlen(res) + 1;
|
||||||
|
if (strlen(pkg) < len-2)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
if (pkg[len-2] == '-')
|
if (pkg[len-2] == '-')
|
||||||
len--;
|
len--;
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*-
|
/*-
|
||||||
* Copyright (c) 2012-2013 Juan Romero Pardines.
|
* Copyright (c) 2012-2014 Juan Romero Pardines.
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -64,6 +64,7 @@ ATF_TC_BODY(util_test, tc)
|
|||||||
ATF_REQUIRE_STREQ(xbps_pkgpattern_name("systemd-[0-9]*"), "systemd");
|
ATF_REQUIRE_STREQ(xbps_pkgpattern_name("systemd-[0-9]*"), "systemd");
|
||||||
ATF_REQUIRE_STREQ(xbps_pkgpattern_name("systemd>4[3-9]?"), "systemd");
|
ATF_REQUIRE_STREQ(xbps_pkgpattern_name("systemd>4[3-9]?"), "systemd");
|
||||||
ATF_REQUIRE_STREQ(xbps_pkgpattern_name("systemd<4_1?"), "systemd");
|
ATF_REQUIRE_STREQ(xbps_pkgpattern_name("systemd<4_1?"), "systemd");
|
||||||
|
ATF_CHECK_EQ(xbps_pkgpattern_name("*nslookup"), NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
ATF_TP_ADD_TCS(tp)
|
ATF_TP_ADD_TCS(tp)
|
||||||
|
Loading…
Reference in New Issue
Block a user