From 9650339c7d37c3bdc16207b8c79a190ca063cf4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antonio=20Ca=C3=B1as=20Vargas?= Date: Sat, 20 Oct 2018 12:13:30 +0200 Subject: [PATCH] Version 18.7.15 --- swad_announcement.c | 4 +-- swad_assignment.c | 2 +- swad_attendance.c | 5 +--- swad_banner.c | 2 +- swad_centre.c | 4 +-- swad_changelog.h | 3 ++- swad_country.c | 2 +- swad_course.c | 2 +- swad_search.c | 62 ++++++++++++++++++++++++--------------------- 9 files changed, 44 insertions(+), 42 deletions(-) diff --git a/swad_announcement.c b/swad_announcement.c index 2ff45abb8..98281f80e 100644 --- a/swad_announcement.c +++ b/swad_announcement.c @@ -547,7 +547,7 @@ void Ann_HideActiveAnnouncement (void) " WHERE AnnCod=%ld", (unsigned) Ann_OBSOLETE_ANNOUNCEMENT,AnnCod) < 0) Lay_NotEnoughMemoryExit (); - DB_QueryUPDATE (Query,"can not hide announcement"); + DB_QueryUPDATE_free (Query,"can not hide announcement"); } /*****************************************************************************/ @@ -567,7 +567,7 @@ void Ann_RevealHiddenAnnouncement (void) " WHERE AnnCod=%ld", (unsigned) Ann_ACTIVE_ANNOUNCEMENT,AnnCod) < 0) Lay_NotEnoughMemoryExit (); - DB_QueryUPDATE (Query,"can not reveal announcement"); + DB_QueryUPDATE_free (Query,"can not reveal announcement"); } /*****************************************************************************/ diff --git a/swad_assignment.c b/swad_assignment.c index 208a6f542..35344ab80 100644 --- a/swad_assignment.c +++ b/swad_assignment.c @@ -875,7 +875,7 @@ static void Asg_GetAssignmentTxtFromDB (long AsgCod,char Txt[Cns_MAX_BYTES_TEXT " WHERE AsgCod=%ld AND CrsCod=%ld", AsgCod,Gbl.CurrentCrs.Crs.CrsCod) < 0) Lay_NotEnoughMemoryExit (); - NumRows = DB_QuerySELECT (Query,&mysql_res,"can not get assignment text"); + NumRows = DB_QuerySELECT_free (Query,&mysql_res,"can not get assignment text"); /***** The result of the query must have one row or none *****/ if (NumRows == 1) diff --git a/swad_attendance.c b/swad_attendance.c index 26cafa4ab..4ce9c1125 100644 --- a/swad_attendance.c +++ b/swad_attendance.c @@ -2526,10 +2526,7 @@ static unsigned Att_GetNumStdsFromAListWhoAreInAttEvent (long AttCod,long LstSel Str_Concat (Query,") AND Present='Y'", MaxLength); - NumStdsInAttEvent = (unsigned) DB_QueryCOUNT (Query,"can not get number of students from a list who are registered in an event"); - - /***** Free query *****/ - free ((void *) Query); + NumStdsInAttEvent = (unsigned) DB_QueryCOUNT_free (Query,"can not get number of students from a list who are registered in an event"); } return NumStdsInAttEvent; } diff --git a/swad_banner.c b/swad_banner.c index 02d5bee64..4299d2adc 100644 --- a/swad_banner.c +++ b/swad_banner.c @@ -1012,7 +1012,7 @@ static void Ban_CreateBanner (struct Banner *Ban) " ('N','%s','%s','%s','%s')", Ban->ShrtName,Ban->FullName,Ban->Img,Ban->WWW) < 0) Lay_NotEnoughMemoryExit (); - DB_QueryINSERT (Query,"can not create banner"); + DB_QueryINSERT_free (Query,"can not create banner"); /***** Write success message *****/ snprintf (Gbl.Alert.Txt,sizeof (Gbl.Alert.Txt), diff --git a/swad_centre.c b/swad_centre.c index 1640f8f10..e2569b996 100644 --- a/swad_centre.c +++ b/swad_centre.c @@ -1296,7 +1296,7 @@ void Ctr_GetShortNameOfCentreByCod (struct Centre *Ctr) " WHERE CtrCod=%ld", Ctr->CtrCod) < 0) Lay_NotEnoughMemoryExit (); - if (DB_QuerySELECT (Query,&mysql_res,"can not get the short name of a centre") == 1) + if (DB_QuerySELECT_free (Query,&mysql_res,"can not get the short name of a centre") == 1) { /***** Get the short name of this centre *****/ row = mysql_fetch_row (mysql_res); @@ -3007,7 +3007,7 @@ unsigned Ctr_ListCtrsFound (const char *Query) struct Centre Ctr; /***** Query database *****/ - if ((NumCtrs = (unsigned) DB_QuerySELECT (Query,&mysql_res,"can not get centres"))) + if ((NumCtrs = (unsigned) DB_QuerySELECT_free (Query,&mysql_res,"can not get centres"))) { /***** Start box and table *****/ /* Number of centres found */ diff --git a/swad_changelog.h b/swad_changelog.h index 68dcf1fbc..36a09090b 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -355,10 +355,11 @@ En OpenSWAD: ps2pdf source.ps destination.pdf */ -#define Log_PLATFORM_VERSION "SWAD 18.7.14 (2018-10-20)" +#define Log_PLATFORM_VERSION "SWAD 18.7.15 (2018-10-20)" #define CSS_FILE "swad18.4.css" #define JS_FILE "swad17.17.1.js" /* + Version 18.7.15: Oct 20, 2018 Some sprintf for database queries changed by asprintf. (236996 lines) Version 18.7.14: Oct 20, 2018 Some sprintf for database queries changed by asprintf. (236993 lines) Version 18.7.13: Oct 20, 2018 Some sprintf for database queries changed by asprintf. (236953 lines) Version 18.7.12: Oct 19, 2018 Some sprintf for database queries changed by asprintf. (236924 lines) diff --git a/swad_country.c b/swad_country.c index 92fd22771..8993f4b7b 100644 --- a/swad_country.c +++ b/swad_country.c @@ -2429,7 +2429,7 @@ unsigned Cty_ListCtysFound (const char *Query) struct Country Cty; /***** Query database *****/ - if ((NumCtys = (unsigned) DB_QuerySELECT (Query,&mysql_res,"can not get countries"))) + if ((NumCtys = (unsigned) DB_QuerySELECT_free (Query,&mysql_res,"can not get countries"))) { /***** Start box and table *****/ /* Number of countries found */ diff --git a/swad_course.c b/swad_course.c index 00961bfad..077e2029c 100644 --- a/swad_course.c +++ b/swad_course.c @@ -3200,7 +3200,7 @@ unsigned Crs_ListCrssFound (const char *Query) unsigned NumCrs; /***** Query database *****/ - NumCrss = (unsigned) DB_QuerySELECT (Query,&mysql_res,"can not get courses"); + NumCrss = (unsigned) DB_QuerySELECT_free (Query,&mysql_res,"can not get courses"); /***** List the courses (one row per course) *****/ if (NumCrss) diff --git a/swad_search.c b/swad_search.c index c1ec3d5fd..a3a3f504b 100644 --- a/swad_search.c +++ b/swad_search.c @@ -25,7 +25,8 @@ /*********************************** Headers *********************************/ /*****************************************************************************/ -#include // For fprintf... +#define _GNU_SOURCE // For asprintf +#include // For fprintf, asprintf... #include // For string functions... #include "swad_box.h" @@ -615,7 +616,7 @@ static unsigned Sch_SearchCountriesInDB (const char *RangeQuery) { extern const char *Txt_STR_LANG_ID[1 + Txt_NUM_LANGUAGES]; char SearchQuery[Sch_MAX_BYTES_SEARCH_QUERY + 1]; - char Query[1024 + Sch_MAX_BYTES_SEARCH_QUERY * 2]; + char *Query; char FieldName[4+1+2+1]; // Example: Name_en /***** Check scope *****/ @@ -633,12 +634,13 @@ static unsigned Sch_SearchCountriesInDB (const char *RangeQuery) if (Sch_BuildSearchQuery (SearchQuery,FieldName,NULL,NULL)) { /***** Query database and list institutions found *****/ - sprintf (Query,"SELECT CtyCod" - " FROM countries" - " WHERE %s%s" - " ORDER BY Name_%s", - SearchQuery,RangeQuery, - Txt_STR_LANG_ID[Gbl.Prefs.Language]); + if (asprintf (&Query,"SELECT CtyCod" + " FROM countries" + " WHERE %s%s" + " ORDER BY Name_%s", + SearchQuery,RangeQuery, + Txt_STR_LANG_ID[Gbl.Prefs.Language]) < 0) + Lay_NotEnoughMemoryExit (); return Cty_ListCtysFound (Query); } } @@ -689,7 +691,7 @@ static unsigned Sch_SearchInstitutionsInDB (const char *RangeQuery) static unsigned Sch_SearchCentresInDB (const char *RangeQuery) { char SearchQuery[Sch_MAX_BYTES_SEARCH_QUERY + 1]; - char Query[1024 + Sch_MAX_BYTES_SEARCH_QUERY * 2]; + char *Query; /***** Check scope *****/ if (Gbl.Scope.Current != Sco_SCOPE_DEG && @@ -700,14 +702,15 @@ static unsigned Sch_SearchCentresInDB (const char *RangeQuery) if (Sch_BuildSearchQuery (SearchQuery,"centres.FullName",NULL,NULL)) { /***** Query database and list centres found *****/ - sprintf (Query,"SELECT centres.CtrCod" - " FROM centres,institutions,countries" - " WHERE %s" - " AND centres.InsCod=institutions.InsCod" - " AND institutions.CtyCod=countries.CtyCod" - "%s" - " ORDER BY centres.FullName,institutions.FullName", - SearchQuery,RangeQuery); + if (asprintf (&Query,"SELECT centres.CtrCod" + " FROM centres,institutions,countries" + " WHERE %s" + " AND centres.InsCod=institutions.InsCod" + " AND institutions.CtyCod=countries.CtyCod" + "%s" + " ORDER BY centres.FullName,institutions.FullName", + SearchQuery,RangeQuery) < 0) + Lay_NotEnoughMemoryExit (); return Ctr_ListCtrsFound (Query); } @@ -755,7 +758,7 @@ static unsigned Sch_SearchDegreesInDB (const char *RangeQuery) static unsigned Sch_SearchCoursesInDB (const char *RangeQuery) { char SearchQuery[Sch_MAX_BYTES_SEARCH_QUERY + 1]; - char Query[1024 + Sch_MAX_BYTES_SEARCH_QUERY * 2]; + char *Query; /***** Check user's permission *****/ if (Sch_CheckIfIHavePermissionToSearch (Sch_SEARCH_COURSES)) @@ -763,17 +766,18 @@ static unsigned Sch_SearchCoursesInDB (const char *RangeQuery) if (Sch_BuildSearchQuery (SearchQuery,"courses.FullName",NULL,NULL)) { /***** Query database and list courses found *****/ - sprintf (Query,"SELECT degrees.DegCod,courses.CrsCod,degrees.ShortName,degrees.FullName," - "courses.Year,courses.FullName,centres.ShortName" - " FROM courses,degrees,centres,institutions,countries" - " WHERE %s" - " AND courses.DegCod=degrees.DegCod" - " AND degrees.CtrCod=centres.CtrCod" - " AND centres.InsCod=institutions.InsCod" - " AND institutions.CtyCod=countries.CtyCod" - "%s" - " ORDER BY courses.FullName,institutions.FullName,degrees.FullName,courses.Year", - SearchQuery,RangeQuery); + if (asprintf (&Query,"SELECT degrees.DegCod,courses.CrsCod,degrees.ShortName,degrees.FullName," + "courses.Year,courses.FullName,centres.ShortName" + " FROM courses,degrees,centres,institutions,countries" + " WHERE %s" + " AND courses.DegCod=degrees.DegCod" + " AND degrees.CtrCod=centres.CtrCod" + " AND centres.InsCod=institutions.InsCod" + " AND institutions.CtyCod=countries.CtyCod" + "%s" + " ORDER BY courses.FullName,institutions.FullName,degrees.FullName,courses.Year", + SearchQuery,RangeQuery) < 0) + Lay_NotEnoughMemoryExit (); return Crs_ListCrssFound (Query); }