]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
auth: Prevent reading uninitialized memory in Lua's getLatLon()
authorRemi Gacogne <remi.gacogne@powerdns.com>
Mon, 20 Apr 2020 12:57:52 +0000 (14:57 +0200)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Mon, 20 Apr 2020 12:57:52 +0000 (14:57 +0200)
pdns/lua-record.cc

index ddcb3f7da04e719892db59cc910751e2cbce9070..7ef5bf6fe18d593603d6a32cc6b55677c647cac1 100644 (file)
@@ -368,7 +368,7 @@ static bool getLatLon(const std::string& ip, string& loc)
   double latsec, lonsec;
   char lathem='X', lonhem='X';
 
-  double lat, lon;
+  double lat = 0, lon = 0;
   if(!getLatLon(ip, lat, lon))
     return false;
 
@@ -532,7 +532,7 @@ void setupLuaRecords()
   LuaContext& lua = *s_LUA->getLua();
 
   lua.writeFunction("latlon", []() {
-      double lat, lon;
+      double lat = 0, lon = 0;
       getLatLon(s_lua_record_ctx->bestwho.toString(), lat, lon);
       return std::to_string(lat)+" "+std::to_string(lon);
     });
@@ -559,7 +559,7 @@ void setupLuaRecords()
       auto labels= s_lua_record_ctx->qname.getRawLabels();
       if(labels.size()<4)
         return std::string("unknown");
-      double lat, lon;
+      double lat = 0, lon = 0;
       getLatLon(labels[3]+"."+labels[2]+"."+labels[1]+"."+labels[0], lat, lon);
       return std::to_string(lat)+" "+std::to_string(lon);
     });