using [xa]sprintf for string concatenation is neat and saves

~100 bytes according to bloatcheck. Also this fixes bug in rpm
This commit is contained in:
Denis Vlasenko 2006-09-09 12:24:19 +00:00
parent 3526a1320a
commit 9cac521f07
6 changed files with 10 additions and 13 deletions

View File

@ -1212,9 +1212,7 @@ int gzip_main(int argc, char **argv)
time_stamp = statBuf.st_ctime;
if (!tostdout) {
path = xmalloc(strlen(argv[i]) + 4);
strcpy(path, argv[i]);
strcat(path, ".gz");
path = xasprintf("%s.gz", argv[i]);
/* Open output file */
#if (__GLIBC__ >= 2) && (__GLIBC_MINOR__ >= 1) && defined O_NOFOLLOW

View File

@ -290,8 +290,7 @@ static void fileaction_dobackup(char *filename, int fileref)
if (rpm_getint(RPMTAG_FILEFLAGS, fileref) & RPMFILE_CONFIG) { /* Only need to backup config files */
stat_res = lstat (filename, &oldfile);
if (stat_res == 0 && S_ISREG(oldfile.st_mode)) { /* File already exists - really should check MD5's etc to see if different */
newname = xstrdup(filename);
newname = strcat(newname, ".rpmorig");
newname = xasprintf("%s.rpmorig", filename);
copy_file(filename, newname, FILEUTILS_RECUR | FILEUTILS_PRESERVE_STATUS);
remove_file(filename, FILEUTILS_RECUR | FILEUTILS_FORCE);
free(newname);

View File

@ -128,7 +128,7 @@ static unsigned int expand(const char *arg, char *buffer)
for (i = 'A'; i <= 'Z'; i++)
*buffer++ = i;
else if (strncmp(arg, "space", 5) == 0) {
const char s[] = "\t\n\v\f\r ";
const char s[] = "\t\n\v\f\r ";
strcat((char*)buffer, s);
buffer += sizeof(s) - 1;
}

View File

@ -322,8 +322,9 @@ errcode_t ext2fs_add_journal_inode(ext2_filsys fs, blk_t size, int flags)
char jfile[1024];
int fd, mount_flags, f;
if ((retval = ext2fs_check_mount_point(fs->device_name, &mount_flags,
jfile, sizeof(jfile)-10)))
retval = ext2fs_check_mount_point(fs->device_name, &mount_flags,
jfile, sizeof(jfile)-10);
if (retval)
return retval;
if (mount_flags & EXT2_MF_MOUNTED) {

View File

@ -129,7 +129,7 @@ int sysctl_preload_file(const char *filename, int output)
}
while (fgets(oneline, sizeof(oneline) - 1, fp)) {
oneline[sizeof(oneline) - 1] = 0;
oneline[sizeof(oneline) - 1] = '\0';
lineno++;
trim(oneline);
ptr = (char *) oneline;
@ -156,9 +156,8 @@ int sysctl_preload_file(const char *filename, int output)
while ((*value == ' ' || *value == '\t') && *value != 0)
value++;
strcpy(buffer, name);
strcat(buffer, "=");
strcat(buffer, value);
/* safe because sizeof(oneline) == sizeof(buffer) */
sprintf(buffer, "%s=%s", name, value);
sysctl_write_setting(buffer, output);
}
fclose(fp);

View File

@ -138,7 +138,7 @@ int logger_main(int argc, char **argv)
len += strlen(*argv);
message = xrealloc(message, len);
if(!i)
message[0] = 0;
message[0] = '\0';
else
strcat(message, " ");
strcat(message, *argv);