[Crash-utility] [PATCH] Add format string to *printf call
Stefan Bader
stefan.bader at canonical.com
Fri Jul 12 07:16:07 UTC 2013
On 11.07.2013 20:26, Dave Anderson wrote:
>
>
>
>
> ----- Original Message -----
>> This patch came from the Ubuntu crash maintainer Stefan Bader. Debian
>> and Ubuntu both build by default with Werror and the -Wformat-security
>> option which catches printf and scanf functions where the format
>> string is not a string literal and there are no format arguments
>> specified. This patch resolves the issue by explicitly adding the "%s"
>> format string.
>
> Looks reasonable.
>
> $ lsdiff fprintf.patch
> crash-7.0.1/cmdline.c
> crash-7.0.1/dev.c
> crash-7.0.1/filesys.c
> crash-7.0.1/kernel.c
> crash-7.0.1/lkcd_common.c
> crash-7.0.1/memory.c
> crash-7.0.1/netdump.c
> crash-7.0.1/symbols.c
> crash-7.0.1/task.c
> crash-7.0.1/tools.c
> crash-7.0.1/va_server.c
> crash-7.0.1/x86_64.c
> crash-7.0.1/xendump.c
> $
>
> Did you vet the other 9 architecture-specific files besides x86_64.c?
Hm, no. I just went through the list that a x86_64 build produced. I really
should do at least a 32bit run as well. And I could do a run on an armhf builder.
-Stefan
>
> Dave
>
>>
>>
>> Signed-off-by: Troy Heber <troyh at debian.org>
>> Signed-off-by: Stefan Bader <stefan.bader at canonical.com>
>> ---
>>
>> Index: crash-7.0.1/cmdline.c
>> ===================================================================
>> --- crash-7.0.1.orig/cmdline.c 2013-07-11 14:34:38.085318626 +0200
>> +++ crash-7.0.1/cmdline.c 2013-07-11 14:52:44.598630317 +0200
>> @@ -62,7 +62,7 @@ process_command_line(void)
>>
>> if (!(pc->flags &
>> (READLINE|SILENT|CMDLINE_IFILE|RCHOME_IFILE|RCLOCAL_IFILE)))
>> - fprintf(fp, pc->prompt);
>> + fprintf(fp, "%s", pc->prompt);
>> fflush(fp);
>>
>> /*
>> Index: crash-7.0.1/dev.c
>> ===================================================================
>> --- crash-7.0.1.orig/dev.c 2013-07-11 14:34:38.173319055 +0200
>> +++ crash-7.0.1/dev.c 2013-07-11 14:52:44.602630336 +0200
>> @@ -224,8 +224,9 @@ char_device_struct:
>> switch (name_typecode)
>> {
>> case TYPE_CODE_ARRAY:
>> - snprintf(buf, name_size, char_device_struct_buf +
>> - OFFSET(char_device_struct_name));
>> + snprintf(buf, name_size, "%s",
>> + char_device_struct_buf +
>> + OFFSET(char_device_struct_name));
>> break;
>> case TYPE_CODE_PTR:
>> default:
>> @@ -294,8 +295,9 @@ char_device_struct:
>> switch (name_typecode)
>> {
>> case TYPE_CODE_ARRAY:
>> - snprintf(buf, name_size, char_device_struct_buf +
>> - OFFSET(char_device_struct_name));
>> + snprintf(buf, name_size, "%s",
>> + char_device_struct_buf +
>> + OFFSET(char_device_struct_name));
>> break;
>> case TYPE_CODE_PTR:
>> default:
>> Index: crash-7.0.1/filesys.c
>> ===================================================================
>> --- crash-7.0.1.orig/filesys.c 2013-07-11 14:34:38.137318875 +0200
>> +++ crash-7.0.1/filesys.c 2013-07-11 14:52:44.606630363 +0200
>> @@ -1290,10 +1290,10 @@ cmd_mount(void)
>> namespace_context);
>> } else {
>> if (!(pc->curcmd_flags & HEADER_PRINTED)) {
>> - fprintf(fp, mount_hdr);
>> + fprintf(fp, "%s", mount_hdr);
>> pc->curcmd_flags |= HEADER_PRINTED;
>> }
>> - fprintf(fp, buf2);
>> + fprintf(fp, "%s", buf2);
>> }
>> found = FALSE;
>> fp = pc->tmpfile;
>> @@ -1420,7 +1420,7 @@ show_mounts(ulong one_vfsmount, int flag
>> sbp = ULONG(vfsmount_buf + OFFSET(vfsmount_mnt_sb));
>>
>> if (flags)
>> - fprintf(fp, mount_hdr);
>> + fprintf(fp, "%s", mount_hdr);
>> fprintf(fp, "%s %s ",
>> mkstring(buf1, VADDR_PRLEN, RJUST|LONG_HEX,
>> MKSTR(*vfsmnt)),
>> @@ -1449,7 +1449,7 @@ show_mounts(ulong one_vfsmount, int flag
>> sprintf(buf1, "%s%s", buf3, buf4);
>> while ((strlen(buf1) > 17) && (buf1[strlen(buf1)-2] == ' '))
>> strip_ending_char(buf1, ' ');
>> - fprintf(fp, buf1);
>> + fprintf(fp, "%s", buf1);
>>
>> if (VALID_MEMBER(vfsmount_mnt_dirname)) {
>> if (read_string(dirp, buf1, BUFSIZE-1))
>> @@ -1486,7 +1486,7 @@ show_mounts(ulong one_vfsmount, int flag
>> fprintf(fp, "%s\n",
>> mkstring(buf2, VADDR_PRLEN,
>> CENTER, "OPEN FILES"));
>> - fprintf(fp, mount_files_header);
>> + fprintf(fp, "%s", mount_files_header);
>> files_header_printed = 1;
>> }
>> file_dump(0, *dp, inode, 0, DUMP_DENTRY_ONLY);
>> @@ -2221,14 +2221,14 @@ cmd_files(void)
>> #define PRINT_FILE_REFERENCE() \
>> if (!root_pwd_printed) { \
>> print_task_header(fp, tc, 0); \
>> - fprintf(fp, root_pwd); \
>> + fprintf(fp, "%s", root_pwd); \
>> root_pwd_printed = TRUE; \
>> } \
>> if (!header_printed) { \
>> - fprintf(fp, files_header); \
>> + fprintf(fp, "%s", files_header);\
>> header_printed = TRUE; \
>> } \
>> - fprintf(fp, buf4); \
>> + fprintf(fp, "%s", buf4); \
>> ref->cmdflags |= FILES_REF_FOUND;
>>
>> #define FILENAME_COMPONENT(P,C) \
>> @@ -2506,7 +2506,7 @@ open_files_dump(ulong task, int flags, s
>> }
>> else if (file) {
>> if (!header_printed) {
>> - fprintf(fp, files_header);
>> + fprintf(fp, "%s", files_header);
>> header_printed = 1;
>> }
>> file_dump(file, 0, 0, i,
>> @@ -3238,7 +3238,7 @@ cmd_fuser(void)
>> if (!STREQ(uses, "")) {
>> if (!fuser_header_printed) {
>> fprintf(pc->saved_fp,
>> - fuser_header);
>> + "%s", fuser_header);
>> fuser_header_printed = 1;
>> }
>> show_fuser(task_buf, uses);
>> @@ -3294,7 +3294,7 @@ cmd_fuser(void)
>> }
>> if (!STREQ(uses, "")) {
>> if (!fuser_header_printed) {
>> - fprintf(pc->saved_fp, fuser_header);
>> + fprintf(pc->saved_fp, "%s", fuser_header);
>> fuser_header_printed = 1;
>> }
>> show_fuser(task_buf, uses);
>> Index: crash-7.0.1/kernel.c
>> ===================================================================
>> --- crash-7.0.1.orig/kernel.c 2013-07-11 14:34:38.061318503 +0200
>> +++ crash-7.0.1/kernel.c 2013-07-11 14:52:44.614630390 +0200
>> @@ -1000,7 +1000,7 @@ bad_match:
>> if (REMOTE())
>> sprintf(buf, "%s:%s", pc->server, pc->server_memsrc);
>> else
>> - sprintf(buf, ACTIVE() ? pc->live_memsrc : pc->dumpfile);
>> + sprintf(buf, "%s", ACTIVE() ? pc->live_memsrc : pc->dumpfile);
>>
>> error(INFO, "%s and %s do not match!\n",
>> pc->system_map ? pc->system_map :
>> @@ -1262,7 +1262,7 @@ verify_namelist()
>> if (REMOTE())
>> sprintf(buffer, "%s:%s", pc->server, pc->server_memsrc);
>> else
>> - sprintf(buffer, ACTIVE() ? "live system" : pc->dumpfile);
>> + sprintf(buffer, "%s", ACTIVE() ? "live system" :
>> pc->dumpfile);
>>
>> sprintf(buffer2, " %s is %s -- %s is %s\n",
>> namelist, namelist_smp ? "SMP" : "not SMP",
>> @@ -4381,13 +4381,13 @@ dump_log_entry(char *logptr, int msg_fla
>> rem = (ulonglong)ts_nsec % (ulonglong)1000000000;
>> sprintf(buf, "[%5lld.%06ld] ", nanos, rem/1000);
>> ilen = strlen(buf);
>> - fprintf(fp, buf);
>> + fprintf(fp, "%s", buf);
>> }
>>
>> if (msg_flags & SHOW_LOG_LEVEL) {
>> sprintf(buf, "<%x>", level);
>> ilen += strlen(buf);
>> - fprintf(fp, buf);
>> + fprintf(fp, "%s", buf);
>> }
>>
>> for (i = 0, p = msg; i < text_len; i++, p++) {
>> @@ -4901,7 +4901,7 @@ dump_sys_call_table(char *spec, int cnt)
>> if (spec)
>> open_tmpfile();
>>
>> - fprintf(fp, sys_call_hdr);
>> + fprintf(fp, "%s", sys_call_hdr);
>>
>> for (i = 0, sct = sys_call_table; i < NR_syscalls; i++, sct++) {
>> if (!(scp = value_symbol(*sct))) {
>> Index: crash-7.0.1/lkcd_common.c
>> ===================================================================
>> --- crash-7.0.1.orig/lkcd_common.c 2013-07-11 14:34:38.189319133 +0200
>> +++ crash-7.0.1/lkcd_common.c 2013-07-11 14:52:44.618630409 +0200
>> @@ -1325,7 +1325,7 @@ lkcd_print(char *fmt, ...)
>> va_end(ap);
>>
>> if (lkcd->fp)
>> - fprintf(lkcd->fp, buf);
>> + fprintf(lkcd->fp, "%s", buf);
>> else
>> console(buf);
>> }
>> Index: crash-7.0.1/memory.c
>> ===================================================================
>> --- crash-7.0.1.orig/memory.c 2013-07-11 14:34:37.997318190 +0200
>> +++ crash-7.0.1/memory.c 2013-07-11 14:53:07.942744447 +0200
>> @@ -3608,7 +3608,7 @@ vm_area_dump(ulong task, ulong flag, ulo
>>
>> if (!(flag & (PHYSADDR|VERIFY_ADDR|PRINT_VMA_STRUCTS|PRINT_SINGLE_VMA)) &&
>> !DO_REF_SEARCH(ref))
>> - fprintf(fp, vma_header);
>> + fprintf(fp, "%s", vma_header);
>>
>> for (found = FALSE; vma; vma = vm_next) {
>>
>> @@ -3868,7 +3868,7 @@ vm_area_page_dump(ulong vma,
>> }
>>
>> if (display)
>> - fprintf(fp, buf3);
>> + fprintf(fp, "%s", buf3);
>>
>> start += PAGESIZE();
>> }
>> @@ -5725,7 +5725,7 @@ dump_page_hash_table(struct meminfo *hi)
>> close_tmpfile();
>>
>> if (found) {
>> - fprintf(fp, hash_table);
>> + fprintf(fp, "%s", hash_table);
>> fprintf(fp, "%lx\n", searchpage);
>> hi->retval = TRUE;
>> }
>> @@ -5829,7 +5829,7 @@ dump_free_pages(struct meminfo *fi)
>> open_tmpfile();
>>
>> if (!verbose)
>> - fprintf(fp, free_area_hdr1);
>> + fprintf(fp, "%s", free_area_hdr1);
>>
>> hq_open();
>> for (i = 0; i < nr_mem_lists; i++) {
>> @@ -5838,7 +5838,7 @@ dump_free_pages(struct meminfo *fi)
>> chunk_size = power(2, i);
>>
>> if (verbose)
>> - fprintf(fp, free_area_hdr2);
>> + fprintf(fp, "%s", free_area_hdr2);
>>
>> fprintf(fp, "%3d ", i);
>> sprintf(buf, "%ldk", (chunk_size * PAGESIZE())/1024);
>> @@ -5924,8 +5924,8 @@ dump_free_pages(struct meminfo *fi)
>> if (found) {
>> order--;
>>
>> - fprintf(fp, last_free_hdr);
>> - fprintf(fp, last_free);
>> + fprintf(fp, "%s", last_free_hdr);
>> + fprintf(fp, "%s", last_free);
>> fprintf(fp, "%lx ", this_addr);
>> if (order) {
>> switch (fi->memtype)
>> @@ -6039,12 +6039,12 @@ dump_multidimensional_free_pages(struct
>> hq_open();
>> for (i = sum = found = 0; i < dimension; i++) {
>> if (!verbose)
>> - fprintf(fp, free_area_hdr5);
>> + fprintf(fp, "%s", free_area_hdr5);
>> pp = (ulong *)(free_area_buf +
>> ((SIZE(free_area_struct)*nr_mem_lists)*i));
>> for (j = 0; j < nr_mem_lists; j++) {
>> if (verbose)
>> - fprintf(fp, free_area_hdr6);
>> + fprintf(fp, "%s", free_area_hdr6);
>>
>> sprintf(buf, "[%d][%d]", i, j);
>> fprintf(fp, "%7s ", buf);
>> @@ -6137,7 +6137,7 @@ dump_multidimensional_free_pages(struct
>> close_tmpfile();
>>
>> if (found) {
>> - fprintf(fp, last_area_hdr);
>> + fprintf(fp, "%s", last_area_hdr);
>> fprintf(fp, "%s\n", last_area);
>> fprintf(fp, "%lx ", this_addr);
>> if (order) {
>> @@ -6433,7 +6433,7 @@ dump_free_pages_zones_v1(struct meminfo
>> zone_hdr,
>> mkstring(buf1, VADDR_PRLEN, CENTER|LJUST,
>> "MEM_MAP"));
>> fprintf(fp, "%s\n", last_zone);
>> - fprintf(fp, last_area_hdr);
>> + fprintf(fp, "%s", last_area_hdr);
>> fprintf(fp, "%s\n", last_area);
>> fprintf(fp, "%lx ", this_addr);
>> if (order) {
>> @@ -6758,7 +6758,7 @@ dump_free_pages_zones_v2(struct meminfo
>> zone_hdr,
>> mkstring(buf1, VADDR_PRLEN, CENTER|LJUST,
>> "MEM_MAP"));
>> fprintf(fp, "%s\n", last_zone);
>> - fprintf(fp, last_area_hdr);
>> + fprintf(fp, "%s", last_area_hdr);
>> fprintf(fp, "%s\n", last_area);
>> fprintf(fp, "%lx ", this_addr);
>> if (order) {
>> @@ -6924,7 +6924,7 @@ dump_zone_free_area(ulong free_area, int
>> ld = &list_data;
>>
>> if (!verbose)
>> - fprintf(fp, free_area_hdr4);
>> + fprintf(fp, "%s", free_area_hdr4);
>>
>> total_free = 0;
>> flen = MAX(VADDR_PRLEN, strlen("FREE_AREA_STRUCT"));
>> @@ -6935,7 +6935,7 @@ dump_zone_free_area(ulong free_area, int
>> for (i = 0; i < num; i++,
>> free_area += SIZE_OPTION(free_area_struct, free_area)) {
>> if (verbose)
>> - fprintf(fp, free_area_hdr3);
>> + fprintf(fp, "%s", free_area_hdr3);
>> fprintf(fp, "%3d ", i);
>> chunk_size = power(2, i);
>> sprintf(buf, "%ldk", (chunk_size * PAGESIZE())/1024);
>> @@ -6999,7 +6999,7 @@ multiple_lists:
>> j++, free_list += SIZE(list_head)) {
>>
>> if (verbose)
>> - fprintf(fp, free_area_hdr3);
>> + fprintf(fp, "%s", free_area_hdr3);
>>
>> fprintf(fp, "%3d ", i);
>> chunk_size = power(2, i);
>> @@ -7109,7 +7109,7 @@ dump_kmeminfo(void)
>> }
>> }
>>
>> - fprintf(fp, kmeminfo_hdr);
>> + fprintf(fp, "%s", kmeminfo_hdr);
>> /*
>> * Get total RAM based upon how the various versions of si_meminfo()
>> * have done it, latest to earliest:
>> @@ -8697,7 +8697,7 @@ dump_kmem_cache(struct meminfo *si)
>>
>> if ((!(si->flags & VERBOSE) || si->reqname) &&
>> !(si->flags & (ADDRESS_SPECIFIED|GET_SLAB_PAGES)))
>> - fprintf(fp, kmem_cache_hdr);
>> + fprintf(fp, "%s", kmem_cache_hdr);
>>
>> si->addrlist = (ulong *)GETBUF((vt->kmem_max_c_num+1) * sizeof(ulong));
>> cnt = 0;
>> @@ -8804,9 +8804,9 @@ dump_kmem_cache(struct meminfo *si)
>> do_slab_chain(SLAB_WALKTHROUGH, si);
>>
>> if (si->found) {
>> - fprintf(fp, kmem_cache_hdr);
>> + fprintf(fp, "%s", kmem_cache_hdr);
>> DUMP_KMEM_CACHE_INFO_V1();
>> - fprintf(fp, slab_hdr);
>> + fprintf(fp, "%s", slab_hdr);
>> DUMP_SLAB_INFO();
>>
>> switch (si->found)
>> @@ -8833,14 +8833,16 @@ dump_kmem_cache(struct meminfo *si)
>> break;
>>
>> case KMEM_OBJECT_ADDR_FREE:
>> - fprintf(fp, free_inuse_hdr);
>> + fprintf(fp, "%s",
>> + free_inuse_hdr);
>> fprintf(fp, " %lx\n",
>> si->container ? si->container :
>> (ulong)si->spec_addr);
>> break;
>>
>> case KMEM_OBJECT_ADDR_INUSE:
>> - fprintf(fp, free_inuse_hdr);
>> + fprintf(fp, "%s",
>> + free_inuse_hdr);
>> fprintf(fp, " [%lx]\n",
>> si->container ? si->container :
>> (ulong)si->spec_addr);
>> @@ -8903,7 +8905,7 @@ dump_kmem_cache_percpu_v1(struct meminfo
>>
>> if ((!(si->flags & VERBOSE) || si->reqname) &&
>> !(si->flags & (ADDRESS_SPECIFIED|GET_SLAB_PAGES)))
>> - fprintf(fp, kmem_cache_hdr);
>> + fprintf(fp, "%s", kmem_cache_hdr);
>>
>> si->addrlist = (ulong *)GETBUF((vt->kmem_max_c_num+1) * sizeof(ulong));
>> si->kmem_bufctl = (int *)GETBUF((vt->kmem_max_c_num+1) * sizeof(int));
>> @@ -9018,9 +9020,9 @@ dump_kmem_cache_percpu_v1(struct meminfo
>> do_slab_chain_percpu_v1(SLAB_WALKTHROUGH, si);
>>
>> if (si->found) {
>> - fprintf(fp, kmem_cache_hdr);
>> + fprintf(fp, "%s", kmem_cache_hdr);
>> DUMP_KMEM_CACHE_INFO_V1();
>> - fprintf(fp, slab_hdr);
>> + fprintf(fp, "%s", slab_hdr);
>> gather_slab_cached_count(si);
>> DUMP_SLAB_INFO();
>>
>> @@ -9045,21 +9047,21 @@ dump_kmem_cache_percpu_v1(struct meminfo
>> break;
>>
>> case KMEM_OBJECT_ADDR_FREE:
>> - fprintf(fp, free_inuse_hdr);
>> + fprintf(fp, "%s", free_inuse_hdr);
>> fprintf(fp, " %lx\n",
>> si->container ? si->container :
>> (ulong)si->spec_addr);
>> break;
>>
>> case KMEM_OBJECT_ADDR_INUSE:
>> - fprintf(fp, free_inuse_hdr);
>> + fprintf(fp, "%s", free_inuse_hdr);
>> fprintf(fp, " [%lx]\n",
>> si->container ? si->container :
>> (ulong)si->spec_addr);
>> break;
>>
>> case KMEM_OBJECT_ADDR_CACHED:
>> - fprintf(fp, free_inuse_hdr);
>> + fprintf(fp, "%s", free_inuse_hdr);
>> fprintf(fp,
>> " %lx (cpu %d cache)\n",
>> si->container ? si->container :
>> @@ -9123,7 +9125,7 @@ dump_kmem_cache_percpu_v2(struct meminfo
>>
>> if ((!(si->flags & VERBOSE) || si->reqname) &&
>> !(si->flags & (ADDRESS_SPECIFIED|GET_SLAB_PAGES)))
>> - fprintf(fp, kmem_cache_hdr);
>> + fprintf(fp, "%s", kmem_cache_hdr);
>>
>> si->addrlist = (ulong *)GETBUF((vt->kmem_max_c_num+1) * sizeof(ulong));
>> si->kmem_bufctl = (int *)GETBUF((vt->kmem_max_c_num+1) * sizeof(int));
>> @@ -9262,9 +9264,9 @@ dump_kmem_cache_percpu_v2(struct meminfo
>> do_slab_chain_percpu_v2(SLAB_WALKTHROUGH, si);
>>
>> if (si->found) {
>> - fprintf(fp, kmem_cache_hdr);
>> + fprintf(fp, "%s", kmem_cache_hdr);
>> DUMP_KMEM_CACHE_INFO_V2();
>> - fprintf(fp, slab_hdr);
>> + fprintf(fp, "%s", slab_hdr);
>> gather_slab_cached_count(si);
>> DUMP_SLAB_INFO();
>>
>> @@ -9289,21 +9291,21 @@ dump_kmem_cache_percpu_v2(struct meminfo
>> break;
>>
>> case KMEM_OBJECT_ADDR_FREE:
>> - fprintf(fp, free_inuse_hdr);
>> + fprintf(fp, "%s", free_inuse_hdr);
>> fprintf(fp, " %lx\n",
>> si->container ? si->container :
>> (ulong)si->spec_addr);
>> break;
>>
>> case KMEM_OBJECT_ADDR_INUSE:
>> - fprintf(fp, free_inuse_hdr);
>> + fprintf(fp, "%s", free_inuse_hdr);
>> fprintf(fp, " [%lx]\n",
>> si->container ? si->container :
>> (ulong)si->spec_addr);
>> break;
>>
>> case KMEM_OBJECT_ADDR_CACHED:
>> - fprintf(fp, free_inuse_hdr);
>> + fprintf(fp, "%s", free_inuse_hdr);
>> fprintf(fp,
>> " %lx (cpu %d cache)\n",
>> si->container ? si->container :
>> @@ -9311,7 +9313,7 @@ dump_kmem_cache_percpu_v2(struct meminfo
>> break;
>>
>> case KMEM_OBJECT_ADDR_SHARED:
>> - fprintf(fp, free_inuse_hdr);
>> + fprintf(fp, "%s", free_inuse_hdr);
>> fprintf(fp,
>> " %lx (shared cache)\n",
>> si->container ? si->container :
>> @@ -10422,7 +10424,7 @@ dump_slab(struct meminfo *si)
>> si->s_index = ULONG_PTR(si->slab_buf + OFFSET(kmem_slab_s_s_index));
>>
>> if (!(si->flags & ADDRESS_SPECIFIED)) {
>> - fprintf(fp, slab_hdr);
>> + fprintf(fp, "%s", slab_hdr);
>> DUMP_SLAB_INFO();
>> }
>>
>> @@ -10474,7 +10476,7 @@ dump_slab_percpu_v1(struct meminfo *si)
>> gather_slab_cached_count(si);
>>
>> if (!(si->flags & ADDRESS_SPECIFIED)) {
>> - fprintf(fp, slab_hdr);
>> + fprintf(fp, "%s", slab_hdr);
>> DUMP_SLAB_INFO();
>> }
>>
>> @@ -10526,7 +10528,7 @@ dump_slab_percpu_v2(struct meminfo *si)
>> gather_slab_cached_count(si);
>>
>> if (!(si->flags & ADDRESS_SPECIFIED)) {
>> - fprintf(fp, slab_hdr);
>> + fprintf(fp, "%s", slab_hdr);
>> DUMP_SLAB_INFO();
>> }
>>
>> @@ -10774,7 +10776,7 @@ dump_slab_objects(struct meminfo *si)
>> }
>>
>> if (!(si->flags & ADDRESS_SPECIFIED))
>> - fprintf(fp, free_inuse_hdr);
>> + fprintf(fp, "%s", free_inuse_hdr);
>>
>> /* For on-slab bufctls, c_offset is the distance between the start
>> of
>> * an obj and its related bufctl. For off-slab bufctls, c_offset is
>> @@ -10850,7 +10852,7 @@ dump_slab_objects_percpu(struct meminfo
>> }
>>
>> if (!(si->flags & ADDRESS_SPECIFIED))
>> - fprintf(fp, free_inuse_hdr);
>> + fprintf(fp, "%s", free_inuse_hdr);
>>
>> for (i = 0, obj = si->s_mem; i < si->c_num; i++, obj += si->size) {
>> on_free_list = FALSE;
>> @@ -13494,7 +13496,7 @@ dump_swap_info(ulong swapflags, ulong *t
>> swap_info = symbol_value("swap_info");
>>
>> if (swapflags & VERBOSE)
>> - fprintf(fp, swap_info_hdr);
>> + fprintf(fp, "%s", swap_info_hdr);
>>
>> totalswap = totalused = 0;
>>
>> @@ -15948,7 +15950,7 @@ dump_kmem_cache_slub(struct meminfo *si)
>>
>> if (!si->reqname &&
>> !(si->flags & (ADDRESS_SPECIFIED|GET_SLAB_PAGES)))
>> - fprintf(fp, kmem_cache_hdr);
>> + fprintf(fp, "%s", kmem_cache_hdr);
>>
>> if (si->flags & ADDRESS_SPECIFIED) {
>> if ((p1 = is_slab_page(si, kbuf))) {
>> @@ -15983,7 +15985,7 @@ dump_kmem_cache_slub(struct meminfo *si)
>> if (reqname) {
>> if (!STREQ(reqname, buf))
>> continue;
>> - fprintf(fp, kmem_cache_hdr);
>> + fprintf(fp, "%s", kmem_cache_hdr);
>> }
>> if (ignore_cache(si, buf)) {
>> fprintf(fp, "%lx %-18s [IGNORED]\n",
>> @@ -16027,7 +16029,7 @@ dump_kmem_cache_slub(struct meminfo *si)
>> } else if (si->flags & VERBOSE) {
>> do_kmem_cache_slub(si);
>> if (!reqname && ((i+1) < si->cache_count))
>> - fprintf(fp, kmem_cache_hdr);
>> + fprintf(fp, "%s", kmem_cache_hdr);
>> }
>>
>> next_cache:
>> Index: crash-7.0.1/netdump.c
>> ===================================================================
>> --- crash-7.0.1.orig/netdump.c 2013-07-11 14:34:38.041318408 +0200
>> +++ crash-7.0.1/netdump.c 2013-07-11 14:52:44.634630494 +0200
>> @@ -691,7 +691,7 @@ netdump_print(char *fmt, ...)
>> va_end(ap);
>>
>> if (nd->ofp)
>> - fprintf(nd->ofp, buf);
>> + fprintf(nd->ofp, "%s", buf);
>> else
>> console(buf);
>> }
>> Index: crash-7.0.1/symbols.c
>> ===================================================================
>> --- crash-7.0.1.orig/symbols.c 2013-07-11 14:34:38.153318953 +0200
>> +++ crash-7.0.1/symbols.c 2013-07-11 14:53:30.506854746 +0200
>> @@ -5691,7 +5691,7 @@ dereference_pointer(ulong addr, struct d
>> }
>> }
>> p1 = strstr(buf1, "=");
>> - fprintf(pc->saved_fp, p1+2);
>> + fprintf(pc->saved_fp, "%s", p1+2);
>> } else
>> fprintf(pc->saved_fp, " %s", buf1);
>> }
>> @@ -6042,7 +6042,7 @@ do_datatype_declaration(struct datatype_
>> if ((flags & SHOW_OFFSET) && whitespace(buf[0]))
>> show_member_offset(sfp, dm, buf);
>> else
>> - fprintf(sfp, buf);
>> + fprintf(sfp, "%s", buf);
>> }
>> }
>> }
>> @@ -6295,7 +6295,7 @@ gdb_whatis(char *s)
>> p1 = buf;
>> if (STRNEQ(buf, "type = "))
>> p1 += strlen("type = ");
>> - fprintf(pc->saved_fp, p1);
>> + fprintf(pc->saved_fp, "%s", p1);
>> }
>>
>> close_tmpfile();
>> @@ -6453,7 +6453,7 @@ cmd_p(void)
>> int firstline;
>>
>> if (leader) {
>> - fprintf(pc->saved_fp, buf2);
>> + fprintf(pc->saved_fp, "%s", buf2);
>> fflush(pc->saved_fp);
>> }
>>
>> @@ -6464,7 +6464,7 @@ cmd_p(void)
>> (p1 = strstr(buf1, "{")) &&
>> !STRNEQ(p1, "{\n")) {
>> *p1 = NULLCHAR;
>> - fprintf(pc->saved_fp, buf1);
>> + fprintf(pc->saved_fp, "%s", buf1);
>> fprintf(pc->saved_fp, "\n {");
>> print_verbatim(pc->saved_fp, p1+1);
>> } else
>> @@ -7110,7 +7110,7 @@ show_member_offset(FILE *ofp, struct dat
>> sprintf(buf1, *gdb_output_radix == 10 ? " [%ld]" : " [0x%lx]", offset);
>> sprintf(fmt, "%c%ds", '%', len);
>> fprintf(ofp, fmt, buf1);
>> - fprintf(ofp, &inbuf[3]);
>> + fprintf(ofp, "%s", &inbuf[3]);
>>
>> return TRUE;
>>
>> @@ -9347,7 +9347,7 @@ dump_offset_table(char *spec, ulong make
>> strstr(buf, " offset_table:"))
>> break;
>>
>> - fprintf(pc->saved_fp, buf);
>> + fprintf(pc->saved_fp, "%s", buf);
>> }
>> }
>> close_tmpfile();
>> Index: crash-7.0.1/task.c
>> ===================================================================
>> --- crash-7.0.1.orig/task.c 2013-07-11 14:34:38.209319226 +0200
>> +++ crash-7.0.1/task.c 2013-07-11 14:52:44.654630595 +0200
>> @@ -2727,7 +2727,7 @@ task_struct_member(struct task_context *
>> print_task_header(pc->saved_fp, tc, 0);
>> header_printed = TRUE;
>> }
>> - fprintf(pc->saved_fp, buf);
>> + fprintf(pc->saved_fp, "%s", buf);
>> if (STRNEQ(buf, lookfor2))
>> BZERO(lookfor2, BUFSIZE);
>> continue;
>> @@ -2738,7 +2738,7 @@ task_struct_member(struct task_context *
>> print_task_header(pc->saved_fp, tc, 0);
>> header_printed = TRUE;
>> }
>> - fprintf(pc->saved_fp, buf);
>> + fprintf(pc->saved_fp, "%s", buf);
>> if (strstr(buf, lookfor3))
>> BZERO(lookfor3, BUFSIZE);
>> continue;
>> @@ -2754,7 +2754,7 @@ task_struct_member(struct task_context *
>> print_task_header(pc->saved_fp, tc, 0);
>> header_printed = TRUE;
>> }
>> - fprintf(pc->saved_fp, buf);
>> + fprintf(pc->saved_fp, "%s", buf);
>> if (strstr(buf, "{{\n"))
>> sprintf(lookfor2, " }},");
>> else if (strstr(buf, "{\n"))
>> @@ -3447,16 +3447,18 @@ task_pointer_string(struct task_context
>> }
>>
>> if (bt->stkptr)
>> - sprintf(buf, mkstring(buf1, VADDR_PRLEN,
>> - CENTER|RJUST|LONG_HEX,
>> - MKSTR(bt->stkptr)));
>> + sprintf(buf, "%s",
>> + mkstring(buf1, VADDR_PRLEN,
>> + CENTER|RJUST|LONG_HEX,
>> + MKSTR(bt->stkptr)));
>> else
>> sprintf(buf, "%s",
>> mkstring(buf1, VADDR_PRLEN, CENTER|RJUST, "--"));
>> } else
>> - sprintf(buf, mkstring(buf1, VADDR_PRLEN,
>> - CENTER|RJUST|LONG_HEX,
>> - MKSTR(tc->task)));
>> + sprintf(buf, "%s",
>> + mkstring(buf1, VADDR_PRLEN,
>> + CENTER|RJUST|LONG_HEX,
>> + MKSTR(tc->task)));
>>
>> return buf;
>> }
>> @@ -8612,7 +8614,7 @@ translate_sigset(ulonglong sigset)
>> }
>>
>> len += strlen(buf);
>> - fprintf(fp, buf);
>> + fprintf(fp, "%s", buf);
>> }
>>
>> sigset >>= 1;
>> Index: crash-7.0.1/tools.c
>> ===================================================================
>> --- crash-7.0.1.orig/tools.c 2013-07-11 14:34:37.937317902 +0200
>> +++ crash-7.0.1/tools.c 2013-07-11 14:52:44.658630611 +0200
>> @@ -5389,7 +5389,7 @@ please_wait(char *s)
>> pc->flags |= PLEASE_WAIT;
>>
>> please_wait_len = sprintf(buf, "\rplease wait... (%s)", s);
>> - fprintf(fp, buf);
>> + fprintf(fp, "%s", buf);
>> fflush(fp);
>> }
>>
>> Index: crash-7.0.1/va_server.c
>> ===================================================================
>> --- crash-7.0.1.orig/va_server.c 2013-07-11 14:34:38.017318292 +0200
>> +++ crash-7.0.1/va_server.c 2013-07-11 14:52:44.658630611 +0200
>> @@ -416,7 +416,7 @@ vas_memory_dump(FILE *fp)
>> hdr = sizeof(long) == 4 ? memory_dump_hdr_32 : memory_dump_hdr_64;
>> fmt = sizeof(long) == 4 ? memory_dump_fmt_32 : memory_dump_fmt_64;
>>
>> - fprintf(fp, hdr);
>> + fprintf(fp, "%s", hdr);
>>
>> for (blks = 0, m = vas_map_base->map; m->start_va; m++) {
>> fprintf(fp, fmt,
>> Index: crash-7.0.1/x86_64.c
>> ===================================================================
>> --- crash-7.0.1.orig/x86_64.c 2013-07-11 14:34:37.957317995 +0200
>> +++ crash-7.0.1/x86_64.c 2013-07-11 14:52:44.666630649 +0200
>> @@ -4679,7 +4679,7 @@ x86_64_extract_idt_function(ulong *ip, c
>>
>> value_to_symstr(addr, locbuf, 0);
>> if (strlen(locbuf))
>> - sprintf(buf, locbuf);
>> + sprintf(buf, "%s", locbuf);
>> else {
>> sprintf(buf, "%016lx", addr);
>> if (kvtop(NULL, addr, &phys, 0)) {
>> @@ -4745,7 +4745,7 @@ x86_64_dis_filter(ulong vaddr, char *inb
>> sprintf(buf1, "0x%lx <%s>\n", value,
>> value_to_symstr(value, buf2, output_radix));
>>
>> - sprintf(p1, buf1);
>> + sprintf(p1, "%s", buf1);
>>
>> } else if (STREQ(argv[argc-2], "callq") &&
>> hexadecimal(argv[argc-1], 0)) {
>> @@ -4763,7 +4763,7 @@ x86_64_dis_filter(ulong vaddr, char *inb
>> value_to_symstr(value, buf2, output_radix));
>> if (IS_MODULE_VADDR(value) &&
>> !strstr(buf2, "+"))
>> - sprintf(p1, buf1);
>> + sprintf(p1, "%s", buf1);
>> }
>> }
>>
>> @@ -7256,7 +7256,7 @@ x86_64_get_framesize(struct bt_info *bt,
>> strcpy(buf2, buf);
>>
>> if (CRASHDEBUG(3))
>> - fprintf(fp, buf2);
>> + fprintf(fp, "%s", buf2);
>>
>> c = parse_line(buf, arglist);
>>
>> Index: crash-7.0.1/xendump.c
>> ===================================================================
>> --- crash-7.0.1.orig/xendump.c 2013-07-11 14:34:38.105318719 +0200
>> +++ crash-7.0.1/xendump.c 2013-07-11 14:52:44.670630676 +0200
>> @@ -1974,9 +1974,9 @@ xendump_print(char *fmt, ...)
>> va_end(ap);
>>
>> if (xd->ofp)
>> - fprintf(xd->ofp, buf);
>> + fprintf(xd->ofp, "%s", buf);
>> else if (!XENDUMP_VALID() && CRASHDEBUG(7))
>> - fprintf(stderr, buf);
>> + fprintf(stderr, "%s", buf);
>>
>> }
>>
>>
>> --
>> Crash-utility mailing list
>> Crash-utility at redhat.com
>> https://www.redhat.com/mailman/listinfo/crash-utility
>>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 899 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/crash-utility/attachments/20130712/651bbeea/attachment.sig>
More information about the Crash-utility
mailing list