Forráskód Böngészése

db_text: reworked the checks for database and table names

Daniel-Constantin Mierla 3 éve
szülő
commit
d4af130477
1 módosított fájl, 12 hozzáadás és 18 törlés
  1. 12 18
      src/modules/db_text/dbt_file.c

+ 12 - 18
src/modules/db_text/dbt_file.c

@@ -94,28 +94,22 @@ dbt_table_p dbt_load_file(const str *tbn, const str *dbn)
 
 	enum {DBT_FLINE_ST, DBT_NLINE_ST, DBT_DATA_ST} state;
 
-	if(!tbn || !tbn->s || tbn->len<=0 || tbn->len>=255)
+	if(!tbn || !tbn->s || tbn->len<=0 || tbn->len>=255) {
+		LM_ERR("invalid table name\n");
 		return NULL;
+	}
+	if(!dbn || !dbn->s || dbn->len<=0 || dbn->len>=255) {
+		LM_ERR("invalid database name\n");
+		return NULL;
+	}
 
 	LM_DBG("request for table [%.*s] (len: %d)\n", tbn->len, tbn->s, tbn->len);
+	LM_DBG("database is [%.*s] (len: %d)\n", dbn->len, dbn->s, dbn->len);
 
-	path[0] = 0;
-	if(dbn && dbn->s && dbn->len>0)
-	{
-		LM_DBG("db is [%.*s] (len: %d)\n", dbn->len, dbn->s, dbn->len);
-		if(dbn->len+tbn->len<511)
-		{
-			strncpy(path, dbn->s, dbn->len);
-			path[dbn->len] = '/';
-			strncpy(path+dbn->len+1, tbn->s, tbn->len);
-			path[dbn->len+tbn->len+1] = 0;
-		}
-	}
-	if(path[0] == 0)
-	{
-		strncpy(path, tbn->s, tbn->len);
-		path[tbn->len] = 0;
-	}
+	strncpy(path, dbn->s, dbn->len);
+	path[dbn->len] = '/';
+	strncpy(path+dbn->len+1, tbn->s, tbn->len);
+	path[dbn->len+tbn->len+1] = 0;
 
 	LM_DBG("loading file [%s]\n", path);
 	fin = fopen(path, "rt");