lib/transaction_revdeps.c: use-after-free (CID 62765)
This commit is contained in:
		| @@ -1,5 +1,5 @@ | |||||||
| /*- | /*- | ||||||
|  * Copyright (c) 2013 Juan Romero Pardines. |  * Copyright (c) 2013-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 | ||||||
| @@ -45,15 +45,18 @@ check_virtual_pkgs(struct xbps_handle *xhp, | |||||||
| 		   xbps_dictionary_t trans_pkgd, | 		   xbps_dictionary_t trans_pkgd, | ||||||
| 		   xbps_dictionary_t rev_pkgd) | 		   xbps_dictionary_t rev_pkgd) | ||||||
| { | { | ||||||
| 	xbps_array_t unsorted, provides, rundeps, mdeps; | 	xbps_array_t unsorted, provides; | ||||||
| 	const char *pkgver, *revpkgver, *pkgpattern; |  | ||||||
| 	char *pkgname, *pkgdepname, *vpkgname, *vpkgver, *str; |  | ||||||
| 	bool matched = false; | 	bool matched = false; | ||||||
|  |  | ||||||
| 	unsorted = xbps_dictionary_get(xhp->transd, "unsorted_deps"); | 	unsorted = xbps_dictionary_get(xhp->transd, "unsorted_deps"); | ||||||
| 	provides = xbps_dictionary_get(trans_pkgd, "provides"); | 	provides = xbps_dictionary_get(trans_pkgd, "provides"); | ||||||
| 	for (unsigned int i = 0; i < xbps_array_count(provides); i++) { | 	for (unsigned int i = 0; i < xbps_array_count(provides); i++) { | ||||||
| 		char *tmp = NULL; | 		xbps_array_t rundeps, mdeps; | ||||||
|  | 		const char *pkgver, *revpkgver, *pkgpattern; | ||||||
|  | 		char *tmp, *pkgname, *pkgdepname, *vpkgname, *vpkgver, *str; | ||||||
|  |  | ||||||
|  | 		pkgver = revpkgver = pkgpattern = NULL; | ||||||
|  | 		tmp = pkgname = pkgdepname = vpkgname = vpkgver = str = NULL; | ||||||
|  |  | ||||||
| 		xbps_array_get_cstring(provides, i, &vpkgver); | 		xbps_array_get_cstring(provides, i, &vpkgver); | ||||||
| 		if (strchr(vpkgver, '_') == NULL) { | 		if (strchr(vpkgver, '_') == NULL) { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user