Optimization warning fixes

This commit is contained in:
Silvan Calarco 2020-06-19 10:44:26 +02:00
parent b14c9271cf
commit 61352c7c3e
7 changed files with 41 additions and 44 deletions

View File

@ -44,7 +44,7 @@ target_link_libraries(distromatic
${LIBIBERTY}
)
target_include_directories(distromatic PUBLIC ${RPM_INCLUDE_DIRS})
target_compile_options(distromatic PUBLIC -g -Wall -std=gnu11 -pedantic ${RPM_CFLAGS_OTHER})
target_compile_options(distromatic PUBLIC -O2 -g -Wall -std=gnu11 -pedantic ${RPM_CFLAGS_OTHER})
add_executable(distroquery
distroquery.c

View File

@ -142,7 +142,7 @@ getPackageChangelog(Header h, struct headerSourceList* headersource)
newchangelog->time = changelogtime[i];
strncpy(changelogname, changelogrelease[i], 255);
strcpy(changelogname, changelogrelease[i]);
endp = strchr(changelogname, '>');
if (endp) {
endp[1] = '\0';

View File

@ -164,7 +164,7 @@ struct configTag* read_configuration(const char *confFile)
newconfigtag->configdefaults = &configdefaults;
if (configdefaults.html_basedir) {
strncpy(buf, configdefaults.html_basedir, PATH_MAX);
strcpy(buf, configdefaults.html_basedir);
strncat(buf, newconfigtag->tag, sizeof(buf) - strlen(buf));
strncat(buf, "/", sizeof(buf) - strlen(buf));
newconfigtag->html_dir = (char *) strdup(buf);
@ -318,7 +318,7 @@ struct configTag* read_configuration(const char *confFile)
}
if (!currconfigtag->repository_source_dir) {
strncpy(buf, currconfigtag->repository_dir, PATH_MAX);
strcpy(buf, currconfigtag->repository_dir);
strncat(buf, "/SRPMS.base/", sizeof(buf) - strlen(buf));
currconfigtag->repository_source_dir =
(char *) strdup(buf);
@ -426,7 +426,7 @@ void logmsg(int level, const char *msg, ...) {
break;
}
if ((level == LOG_WARNING) || (level == LOG_ERROR)) {
strncpy(oldmsg[curroldmsg++],newmsg,256);
strncpy(oldmsg[curroldmsg++],newmsg,PATH_MAX);
if (curroldmsg >= 20) curroldmsg = 0;
}
}
@ -488,20 +488,20 @@ fprintf_depstable_filtered_var(FILE* f,char* st) {
char *humanSize(long long sbytes, sizeString *s) {
if (sbytes < 1024) {
snprintf((char *)s, SSSIZE, "%lld B", sbytes);
return (char *)s;
snprintf((char *)s, SSSIZE, "%lld B", sbytes);
return (char *)s;
}
if ((sbytes / 1024) < 1024) {
snprintf((char *)s, SSSIZE, "%.2f KB", sbytes / 1024.0);
return (char*)s;
snprintf((char *)s, SSSIZE, "%.2f KB", sbytes / 1024.0);
return (char*)s;
}
if ((sbytes / 1024 / 1024 ) < 1024) {
snprintf((char *)s, SSSIZE, "%.2f MB", sbytes / 1024.0 / 1024.0);
return (char*)s;
snprintf((char *)s, SSSIZE, "%.2f MB", sbytes / 1024.0 / 1024.0);
return (char*)s;
}
if ((sbytes / 1024 / 1024 / 1024 ) < 1024) {
snprintf((char *)s, SSSIZE, "%.2f GB", sbytes / 1024.0 / 1024.0 / 1024.0);
return (char*)s;
snprintf((char *)s, SSSIZE, "%.2f GB", sbytes / 1024.0 / 1024.0 / 1024.0);
return (char*)s;
}
snprintf((char *)s, SSSIZE, "%.2f TB", sbytes / 1024.0 / 1024.0 / 1024.0 / 1024.0);
return (char*)s;

View File

@ -11,7 +11,7 @@
#include <dirent.h>
#define HDSIZE 16
#define SSSIZE 16
#define SSSIZE 24
typedef char humanDate[HDSIZE];
typedef char sizeString[SSSIZE];

View File

@ -26,14 +26,13 @@ int cleanHTMLFiles(struct configTag *ct);
int generateHTMLFiles(struct configTag *configtag,int arch);
int generateHTML_SRPMSFiles(struct configTag *configtag);
int generateHTMLMainIndex(struct configTag *configtag);
char *groupdirname(char *group,char *dest,unsigned int max);
int write_RPM_HTML(struct configTag *ct,FILE *fout, struct headerList *currheaderlist);
int print_contentslist(struct configTag *ct, int arch);
int print_datatables(struct configTag *ct, int arch);
char *ftname(struct fileTree* ft, char* buf, unsigned int bufsize);
void print_contents_subtree(FILE *f,
struct fileTree* ft,
struct configTag* ct,
char *ftname(struct fileTree* ft, char* buf);
void print_contents_subtree(FILE *f,
struct fileTree* ft,
struct configTag* ct,
char* buf, int bufsize);
int generatePkgList(struct configTag *ct, int arch);
int generateSrcPkgList(struct configTag *ct);

View File

@ -41,13 +41,13 @@
#define HTMLOLDSTATS_NUM 400
#define RSSSTATS_NUM 20
char *groupdirname(char *group,char *dest,unsigned int max)
char *groupdirname(char *group,char *dest)
{
strncpy(dest,group,max);
strcpy(dest,group);
unsigned int i=0;
while (dest[i] && i<max) {
while (dest[i] && i<PATH_MAX) {
switch (dest[i]) {
case '/': dest[i]=':'; break;
case ' ': dest[i]='_'; break;
@ -439,9 +439,9 @@ generateStats(struct configTag *configtag,int arch)
if (pkgnum==0) {
snprintf(outfile, PATH_MAX, "%sgroups/%s",
sprintf(outfile, "%sgroups/%s",
configtag->html_dir,
groupdirname(configtag->stats.headersourcelistvec[i]->group,buffer,PATH_MAX));
groupdirname(configtag->stats.headersourcelistvec[i]->group,buffer));
if (stat(outfile,&buf)) {
if (mkdir(outfile,S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH)) {
@ -484,7 +484,7 @@ generateStats(struct configTag *configtag,int arch)
"<a href=\"%stag=%s&amp;group=%s\">%s <b>(%d)</b></a><br>\n",
configtag->configdefaults->url_prefix,
configtag->tag,
groupdirname(configtag->stats.headersourcelistvec[i-1]->group,buffer,PATH_MAX),
groupdirname(configtag->stats.headersourcelistvec[i-1]->group,buffer),
(configtag->stats.headersourcelistvec)[i-1]->group,
pkgnum);
pkgnum=0;
@ -497,7 +497,7 @@ generateStats(struct configTag *configtag,int arch)
fclose(groupout);
}
strncpy(outfile, configtag->html_dir, PATH_MAX);
strcpy(outfile, configtag->html_dir);
strncat(outfile, "_recent.inc", sizeof(outfile) - strlen(outfile));
if ((htmlout = fopen(outfile, "w")) == NULL) {
perror(outfile);
@ -513,7 +513,7 @@ generateStats(struct configTag *configtag,int arch)
fprintf(htmlout, "Recent builds:<br>\n");
}*/
strncpy(outfile, configtag->html_dir, PATH_MAX);
strcpy(outfile, configtag->html_dir);
strncat(outfile, "_oldest.inc", sizeof(outfile) - strlen(outfile));
if ((htmloldout = fopen(outfile, "w")) == NULL) {
perror(outfile);
@ -524,7 +524,7 @@ generateStats(struct configTag *configtag,int arch)
fprintf(htmloldout, "Oldest builds:<br>\n");
}*/
strncpy(rssfile, configtag->html_dir, PATH_MAX);
strcpy(rssfile, configtag->html_dir);
strncat(rssfile, "recent.rss", sizeof(rssfile) - strlen(rssfile));
if ((rssout = fopen(rssfile, "w")) == NULL) {
perror(rssfile);
@ -651,7 +651,7 @@ generateStats(struct configTag *configtag,int arch)
} else {
/* remove final slashes from download_prefix as required by apt */
strncpy(buffer, configtag->download_dir, PATH_MAX);
strcpy(buffer, configtag->download_dir);
i=strlen(buffer);
while ((i > 0) && (buffer[i-1] == '/' )) {
@ -690,7 +690,7 @@ generateStats(struct configTag *configtag,int arch)
return 1;
} else {
/* remove final slashes from download_prefix as required by apt */
strncpy(buffer, configtag->download_dir, PATH_MAX);
strcpy(buffer, configtag->download_dir);
i=strlen(buffer);
while ((i > 0) && (buffer[i-1] == '/' )) {
@ -753,7 +753,7 @@ generateHTMLMainIndex(struct configTag *configtag)
return 2;
}
strncpy(indexfile, configtag->configdefaults->html_basedir, PATH_MAX);
strcpy(indexfile, configtag->configdefaults->html_basedir);
strncat(indexfile, "_index.inc", sizeof(indexfile) - strlen(indexfile));
if ((fout = fopen(indexfile, "w")) == NULL) {
@ -789,7 +789,7 @@ generateHTMLMainIndex(struct configTag *configtag)
configtag->description);
/* remove final slashes from download_prefix as required by apt */
strncpy(buffer, configtag->download_dir, PATH_MAX);
strcpy(buffer, configtag->download_dir);
i=strlen(buffer);
while ((i > 0) && (buffer[i-1] == '/' )) {
buffer[i-1]='\0';
@ -987,7 +987,7 @@ generateHTML_SRPMSFiles(struct configTag *configtag)
"<tr><td>Group:</td><td><a href=\"%stag=%s&amp;group=%s\">%s</a></td></tr>\n",
configtag->configdefaults->url_prefix,
configtag->tag,
groupdirname(currheadersourcelist->group, buffer2, PATH_MAX),
groupdirname(currheadersourcelist->group, buffer2),
htmlclean(currheadersourcelist->group,buffer,PATH_MAX));
fprintf(fout,
@ -1096,7 +1096,7 @@ generateHTML_SRPMSFiles(struct configTag *configtag)
fprintf(findexout[idx],"</td><td><b>%s</b>: <i>%s</i>",currheadersourcelist->name,htmlclean(currheadersourcelist->summary,buffer,PATH_MAX));
st=strstr(currheadersourcelist->url,"://");
if (st) {
strncpy(buffer,st+3,PATH_MAX);
strcpy(buffer,st+3);
st=strchr(buffer,'/');
if (st) st[0]='\0';
fprintf(findexout[idx],
@ -1346,7 +1346,7 @@ cleanHTMLFiles(struct configTag *ct)
while (currheadersourcelist) {
snprintf(dir, PATH_MAX, "%sgroups/%s",
ct->html_dir,
groupdirname(currheadersourcelist->group,uf,PATH_MAX));
groupdirname(currheadersourcelist->group,uf));
if (!stat(dir,&buf)) {
logmsg(LOG_DEBUG,"removing directory %s",dir);
@ -1363,7 +1363,7 @@ cleanHTMLFiles(struct configTag *ct)
/* legacy: clean old group dirs */
snprintf(dir, PATH_MAX, "%s%s",
ct->html_dir,
groupdirname(currheadersourcelist->group,uf,PATH_MAX));
groupdirname(currheadersourcelist->group,uf));
if (!stat(dir,&buf)) {
logmsg(LOG_DEBUG,"removing legacy directory %s",dir);
@ -1696,8 +1696,7 @@ generateHTMLFiles(struct configTag *ct, int arch)
fprintf(fout,
"<tr><td>Filenames:</td><td><font size=\"-1\">");
for (i = 0; i < currheaderlist->filenamecount; i++) {
ftname((currheaderlist->file)[i],
buffer, PATH_MAX);
ftname((currheaderlist->file)[i], buffer);
fprintf(fout, "/%s ",buffer);
}
@ -1710,19 +1709,19 @@ generateHTMLFiles(struct configTag *ct, int arch)
return 0;
}
char *ftname(struct fileTree* ft, char* buf, unsigned int bufsize) {
char *ftname(struct fileTree* ft, char* buf) {
buf[0]='\0';
int l;
if (ft) {
strncpy(buf,ft->name,bufsize);
strcpy(buf,ft->name);
ft=ft->parent;
}
while (ft) {
l=strlen(ft->name);
if (strlen(buf)+l+1 <= bufsize) {
if (strlen(buf)+l+1 <= PATH_MAX) {
memmove(buf+l+1,buf,strlen(buf)+1);
memcpy(buf,ft->name,l);
buf[l]='/';
@ -1747,7 +1746,7 @@ void print_contents_subtree(FILE *f,
((ft->provider[k]) &&
(ft->provider[k]->sourceheader) &&
(ft->provider[k]->altrepository == ct->repository_level))) {
ftname(ft,buf,bufsize);
ftname(ft,buf);
if ((j=strlen(buf)) < 60) {
for (i=(60-j)/8; i>0; i--) strncat(buf, "\t", bufsize - strlen(buf));
while (strlen(buf) < 60) strncat(buf, " ", bufsize - strlen(buf));

View File

@ -147,7 +147,7 @@ headerGetStringEntry(Header h, const int tag)
char **
headerGetStringArrayEntry(Header h, const int tag, int* count)
{
char **st;
char **st = NULL;
#if RPM_VERSION_MAJOR >= 0x050000
HE_t he = memset(alloca(sizeof(*he)), 0, sizeof(*he));
@ -158,7 +158,6 @@ headerGetStringArrayEntry(Header h, const int tag, int* count)
st = dupnargv(he->p.ptr, he->c);
} else {
*count = 0;
st = NULL;
}
he->p.ptr = _free(he->p.ptr);
#else