Selaa lähdekoodia

aptconfiguration: Convert strtok() to strtok_r()

strtok() is not thread-safe, whereas strtok_r() is.

Gbp-Dch: ignore
Julian Andres Klode 10 vuotta sitten
vanhempi
commit
1843d82ff5
1 muutettua tiedostoa jossa 3 lisäystä ja 2 poistoa
  1. 3 2
      apt-pkg/aptconfiguration.cc

+ 3 - 2
apt-pkg/aptconfiguration.cc

@@ -382,8 +382,9 @@ std::vector<std::string> const Configuration::getArchitectures(bool const &Cache
 		FILE *dpkg = fdopen(external[0], "r");
 		if(dpkg != NULL) {
 			char buf[1024];
+			char *tok_buf;
 			while (fgets(buf, sizeof(buf), dpkg) != NULL) {
-				char* arch = strtok(buf, " ");
+				char* arch = strtok_r(buf, " ", &tok_buf);
 				while (arch != NULL) {
 					for (; isspace(*arch) != 0; ++arch);
 					if (arch[0] != '\0') {
@@ -393,7 +394,7 @@ std::vector<std::string> const Configuration::getArchitectures(bool const &Cache
 						if (std::find(archs.begin(), archs.end(), a) == archs.end())
 							archs.push_back(a);
 					}
-					arch = strtok(NULL, " ");
+					arch = strtok_r(NULL, " ", &tok_buf);
 				}
 			}
 			fclose(dpkg);