diff --git a/mbfido/mbfkill.c b/mbfido/mbfkill.c index 6edc3cfb..407e15d9 100644 --- a/mbfido/mbfkill.c +++ b/mbfido/mbfkill.c @@ -67,7 +67,7 @@ void Kill(void) printf("Kill/move files...\n"); } - sprintf(sAreas, "%s/etc/fareas.data", getenv("MBSE_ROOT")); + snprintf(sAreas, PATH_MAX -1, "%s/etc/fareas.data", getenv("MBSE_ROOT")); if ((pAreas = fopen (sAreas, "r")) == NULL) { WriteError("Can't open %s", sAreas); @@ -148,8 +148,8 @@ void Kill(void) if (area.MoveArea) { fseek(pAreas, ((area.MoveArea -1) * areahdr.recsize) + areahdr.hdrsize, SEEK_SET); fread(&darea, areahdr.recsize, 1, pAreas); - sprintf(from, "%s/%s", area.Path, fdb.Name); - sprintf(to, "%s/%s", darea.Path, fdb.Name); + snprintf(from, PATH_MAX -1, "%s/%s", area.Path, fdb.Name); + snprintf(to, PATH_MAX -1, "%s/%s", darea.Path, fdb.Name); if ((rc = file_mv(from, to)) == 0) { Syslog('+', "Move %s, area %d => %d", fdb.Name, i, area.MoveArea); if ((dst_area = mbsedb_OpenFDB(area.MoveArea, 30))) { @@ -162,22 +162,22 @@ void Kill(void) /* * Now again if there is a dotted version (thumbnail) of this file. */ - sprintf(from, "%s/.%s", area.Path, fdb.Name); - sprintf(to, "%s/.%s", darea.Path, fdb.Name); + snprintf(from, PATH_MAX -1, "%s/.%s", area.Path, fdb.Name); + snprintf(to, PATH_MAX -1, "%s/.%s", darea.Path, fdb.Name); if (file_exist(from, R_OK) == 0) file_mv(from, to); /* * Unlink the old symbolic link */ - sprintf(from, "%s/%s", area.Path, fdb.LName); + snprintf(from, PATH_MAX -1, "%s/%s", area.Path, fdb.LName); unlink(from); /* * Create the new symbolic link */ - sprintf(from, "%s/%s", darea.Path, fdb.Name); - sprintf(to, "%s/%s", darea.Path, fdb.LName); + snprintf(from, PATH_MAX -1, "%s/%s", darea.Path, fdb.Name); + snprintf(to, PATH_MAX -1, "%s/%s", darea.Path, fdb.LName); symlink(from, to); fdb.Deleted = TRUE; @@ -199,11 +199,11 @@ void Kill(void) mbsedb_UnlockFDB(fdb_area); } iKilled++; - sprintf(from, "%s/%s", area.Path, fdb.LName); + snprintf(from, PATH_MAX -1, "%s/%s", area.Path, fdb.LName); unlink(from); - sprintf(from, "%s/%s", area.Path, fdb.Name); + snprintf(from, PATH_MAX -1, "%s/%s", area.Path, fdb.Name); unlink(from); - sprintf(from, "%s/.%s", area.Path, fdb.Name); + snprintf(from, PATH_MAX -1, "%s/.%s", area.Path, fdb.Name); unlink(from); } } diff --git a/mbfido/mbflist.c b/mbfido/mbflist.c index 9879eca5..90a168d2 100644 --- a/mbfido/mbflist.c +++ b/mbfido/mbflist.c @@ -4,7 +4,7 @@ * Purpose: File Database Maintenance - List areas and totals * ***************************************************************************** - * Copyright (C) 1997-2004 + * Copyright (C) 1997-2005 * * Michiel Broek FIDO: 2:280/2802 * Beekmansbos 10 @@ -69,7 +69,7 @@ void ListFileAreas(int Area) sTic = calloc(PATH_MAX, sizeof(char)); ticarea = calloc(21, sizeof(char)); - sprintf(sAreas, "%s/etc/fareas.data", getenv("MBSE_ROOT")); + snprintf(sAreas, PATH_MAX -1, "%s/etc/fareas.data", getenv("MBSE_ROOT")); if ((pAreas = fopen (sAreas, "r")) == NULL) { WriteError("Can't open %s", sAreas); printf("Can't open %s\n", sAreas); @@ -83,7 +83,7 @@ void ListFileAreas(int Area) if (Area) { IsDoing("List area %d", Area); - sprintf(sTic, "%s/etc/tic.data", getenv("MBSE_ROOT")); + snprintf(sTic, PATH_MAX -1, "%s/etc/tic.data", getenv("MBSE_ROOT")); if ((pTic = fopen(sTic, "r")) == NULL) { WriteError("Can't open %s", sTic); printf("Can't open %s\n", sTic); @@ -121,7 +121,7 @@ void ListFileAreas(int Area) mbse_colour(LIGHTGRAY, BLACK); while (fread(&fdb, fdbhdr.recsize, 1, fdb_area->fp) == 1) { - sprintf(flags, "---"); + snprintf(flags, 3, "---"); if (fdb.Deleted) flags[0] = 'D'; if (fdb.NoKill) diff --git a/mbfido/mbfpack.c b/mbfido/mbfpack.c index 717fa772..d5e1df4c 100644 --- a/mbfido/mbfpack.c +++ b/mbfido/mbfpack.c @@ -61,7 +61,7 @@ void PackFileBase(void) printf("Packing file database...\n"); } - sprintf(sAreas, "%s/etc/fareas.data", getenv("MBSE_ROOT")); + snprintf(sAreas, PATH_MAX -1, "%s/etc/fareas.data", getenv("MBSE_ROOT")); if ((pAreas = fopen (sAreas, "r")) == NULL) { WriteError("Can't open %s", sAreas); @@ -102,18 +102,18 @@ void PackFileBase(void) Syslog('+', "Removed double record file \"%s\" from area %d", fdb.LName, i); } else { Syslog('+', "Removed file \"%s\" from area %d", fdb.LName, i); - sprintf(fn, "%s/%s", area.Path, fdb.LName); + snprintf(fn, PATH_MAX -1, "%s/%s", area.Path, fdb.LName); rc = unlink(fn); if (rc && (errno != ENOENT)) Syslog('+', "Unlink %s failed, result %d", fn, rc); - sprintf(fn, "%s/%s", area.Path, fdb.Name); + snprintf(fn, PATH_MAX -1, "%s/%s", area.Path, fdb.Name); rc = unlink(fn); if (rc && (errno != ENOENT)) Syslog('+', "Unlink %s failed, result %d", fn, rc); /* * If a dotted version (thumbnail) exists, remove it silently */ - sprintf(fn, "%s/.%s", area.Path, fdb.Name); + snprintf(fn, PATH_MAX -1, "%s/.%s", area.Path, fdb.Name); unlink(fn); } do_index = TRUE; diff --git a/mbfido/mbfrearc.c b/mbfido/mbfrearc.c index bf35ed8b..768a1ee9 100644 --- a/mbfido/mbfrearc.c +++ b/mbfido/mbfrearc.c @@ -90,7 +90,7 @@ void ReArc(int Area, char *File) while (fread(&fdb, fdbhdr.recsize, 1, fdb_area->fp) == 1) { if (re_exec(fdb.LName) || re_exec(fdb.Name)) { Syslog('+', "Will rearc %s", fdb.LName); - sprintf(temp, "%s/%s", area.Path, fdb.Name); + snprintf(temp, PATH_MAX -1, "%s/%s", area.Path, fdb.Name); count++; rc = rearc(temp, area.Archiver, do_quiet); @@ -105,7 +105,7 @@ void ReArc(int Area, char *File) } linkpath = calloc(PATH_MAX, sizeof(char)); - sprintf(linkpath, "%s/%s", area.Path, fdb.LName); + snprintf(linkpath, PATH_MAX -1, "%s/%s", area.Path, fdb.LName); unlink(linkpath); Syslog('+', "New name %s", temp); @@ -129,7 +129,7 @@ void ReArc(int Area, char *File) *p = '\0'; else if ((p = strstr(fdb.Name, "HA"))) *p = '\0'; - sprintf(p, "%s", archiver.name); + snprintf(p, 5, "%s", archiver.name); if ((p = strstr(fdb.LName, "arc"))) *p = '\0'; else if ((p = strstr(fdb.LName, "lha"))) @@ -154,7 +154,7 @@ void ReArc(int Area, char *File) *p = '\0'; else if ((p = strstr(fdb.LName, "ha"))) *p = '\0'; - sprintf(p, "%s", tl(archiver.name)); + snprintf(p, 5, "%s", tl(archiver.name)); Syslog('f', "%s %s", fdb.Name, fdb.LName); fdb.Size = file_size(temp); fdb.Crc32 = file_crc(temp, FALSE); @@ -172,7 +172,7 @@ void ReArc(int Area, char *File) if (strcmp(fdb.Name, mname)) { Syslog('+', "Converted 8.3 name to %s", mname); strcpy(fdb.Name, mname); - sprintf(mname, "%s/%s", area.Path, fdb.Name); + snprintf(mname, PATH_MAX -1, "%s/%s", area.Path, fdb.Name); rename(temp, mname); strcpy(temp, mname); } @@ -186,7 +186,7 @@ void ReArc(int Area, char *File) /* * Update symbolic link to long filename */ - sprintf(linkpath, "%s/%s", area.Path, fdb.LName); + snprintf(linkpath, PATH_MAX -1, "%s/%s", area.Path, fdb.LName); symlink(temp, linkpath); free(linkpath); if (strlen(fdb.Magic)) diff --git a/mbfido/mbfsort.c b/mbfido/mbfsort.c index fca211e3..bfb6042e 100644 --- a/mbfido/mbfsort.c +++ b/mbfido/mbfsort.c @@ -59,7 +59,7 @@ void SortFileBase(int Area) mbse_colour(CYAN, BLACK); } - sprintf(sAreas, "%s/etc/fareas.data", getenv("MBSE_ROOT")); + snprintf(sAreas, PATH_MAX -1, "%s/etc/fareas.data", getenv("MBSE_ROOT")); if ((pAreas = fopen (sAreas, "r")) == NULL) { WriteError("Can't open %s", sAreas); diff --git a/mbsetup/m_ol.c b/mbsetup/m_ol.c index f8705c66..cc70984e 100644 --- a/mbsetup/m_ol.c +++ b/mbsetup/m_ol.c @@ -596,7 +596,7 @@ void ol_doc(void) fread(&olhdr, sizeof(olhdr), 1, fp); while (fread(&ol, olhdr.recsize, 1, fp) == 1) { nr++; - html_massage(ol.Oneline, out); + html_massage(ol.Oneline, out, 1023); fprintf(wp, "%d%s%s%s%s\n", nr, out, ol.UserName, ol.DateOfEntry, getboolean(ol.Available)); } diff --git a/mbsetup/mutil.c b/mbsetup/mutil.c index 80769bf5..66050a91 100644 --- a/mbsetup/mutil.c +++ b/mbsetup/mutil.c @@ -211,9 +211,9 @@ void add_webtable(FILE *fp, char *hstr, char *dstr) { char left[1024], right[1024]; - html_massage(hstr, left); + html_massage(hstr, left, 1023); if (strlen(dstr)) - html_massage(dstr, right); + html_massage(dstr, right, 1023); else sprintf(right, " "); fprintf(fp, "%s%s\n", left, right); @@ -225,7 +225,7 @@ void add_webdigit(FILE *fp, char *hstr, int digit) { char left[1024]; - html_massage(hstr, left); + html_massage(hstr, left, 1023); fprintf(fp, "%s%d\n", left, digit); }