Commit 888d57bbc91ebd031451d4ab1c669baee826a06c
Committed by
Tyler Hicks
1 parent
0abe116947
Exists in
master
and in
4 other branches
fs/ecryptfs: Add printf format/argument verification and fix fallout
Add __attribute__((format... to __ecryptfs_printk Make formats and arguments match. Add casts to (unsigned long long) for %llu. Signed-off-by: Joe Perches <joe@perches.com> [tyhicks: 80 columns cleanup and fixed typo] Signed-off-by: Tyler Hicks <tyhicks@linux.vnet.ibm.com>
Showing 6 changed files with 30 additions and 29 deletions Side-by-side Diff
fs/ecryptfs/crypto.c
... | ... | @@ -413,10 +413,9 @@ |
413 | 413 | rc = ecryptfs_derive_iv(extent_iv, crypt_stat, |
414 | 414 | (extent_base + extent_offset)); |
415 | 415 | if (rc) { |
416 | - ecryptfs_printk(KERN_ERR, "Error attempting to " | |
417 | - "derive IV for extent [0x%.16x]; " | |
418 | - "rc = [%d]\n", (extent_base + extent_offset), | |
419 | - rc); | |
416 | + ecryptfs_printk(KERN_ERR, "Error attempting to derive IV for " | |
417 | + "extent [0x%.16llx]; rc = [%d]\n", | |
418 | + (unsigned long long)(extent_base + extent_offset), rc); | |
420 | 419 | goto out; |
421 | 420 | } |
422 | 421 | if (unlikely(ecryptfs_verbosity > 0)) { |
... | ... | @@ -443,9 +442,9 @@ |
443 | 442 | } |
444 | 443 | rc = 0; |
445 | 444 | if (unlikely(ecryptfs_verbosity > 0)) { |
446 | - ecryptfs_printk(KERN_DEBUG, "Encrypt extent [0x%.16x]; " | |
447 | - "rc = [%d]\n", (extent_base + extent_offset), | |
448 | - rc); | |
445 | + ecryptfs_printk(KERN_DEBUG, "Encrypt extent [0x%.16llx]; " | |
446 | + "rc = [%d]\n", | |
447 | + (unsigned long long)(extent_base + extent_offset), rc); | |
449 | 448 | ecryptfs_printk(KERN_DEBUG, "First 8 bytes after " |
450 | 449 | "encryption:\n"); |
451 | 450 | ecryptfs_dump_hex((char *)(page_address(enc_extent_page)), 8); |
... | ... | @@ -540,10 +539,9 @@ |
540 | 539 | rc = ecryptfs_derive_iv(extent_iv, crypt_stat, |
541 | 540 | (extent_base + extent_offset)); |
542 | 541 | if (rc) { |
543 | - ecryptfs_printk(KERN_ERR, "Error attempting to " | |
544 | - "derive IV for extent [0x%.16x]; " | |
545 | - "rc = [%d]\n", (extent_base + extent_offset), | |
546 | - rc); | |
542 | + ecryptfs_printk(KERN_ERR, "Error attempting to derive IV for " | |
543 | + "extent [0x%.16llx]; rc = [%d]\n", | |
544 | + (unsigned long long)(extent_base + extent_offset), rc); | |
547 | 545 | goto out; |
548 | 546 | } |
549 | 547 | if (unlikely(ecryptfs_verbosity > 0)) { |
... | ... | @@ -571,9 +569,9 @@ |
571 | 569 | } |
572 | 570 | rc = 0; |
573 | 571 | if (unlikely(ecryptfs_verbosity > 0)) { |
574 | - ecryptfs_printk(KERN_DEBUG, "Decrypt extent [0x%.16x]; " | |
575 | - "rc = [%d]\n", (extent_base + extent_offset), | |
576 | - rc); | |
572 | + ecryptfs_printk(KERN_DEBUG, "Decrypt extent [0x%.16llx]; " | |
573 | + "rc = [%d]\n", | |
574 | + (unsigned long long)(extent_base + extent_offset), rc); | |
577 | 575 | ecryptfs_printk(KERN_DEBUG, "First 8 bytes after " |
578 | 576 | "decryption:\n"); |
579 | 577 | ecryptfs_dump_hex((char *)(page_address(page) |
fs/ecryptfs/ecryptfs_kernel.h
... | ... | @@ -583,6 +583,7 @@ |
583 | 583 | |
584 | 584 | #define ecryptfs_printk(type, fmt, arg...) \ |
585 | 585 | __ecryptfs_printk(type "%s: " fmt, __func__, ## arg); |
586 | +__attribute__ ((format(printf, 1, 2))) | |
586 | 587 | void __ecryptfs_printk(const char *fmt, ...); |
587 | 588 | |
588 | 589 | extern const struct file_operations ecryptfs_main_fops; |
fs/ecryptfs/file.c
... | ... | @@ -241,9 +241,9 @@ |
241 | 241 | } |
242 | 242 | } |
243 | 243 | mutex_unlock(&crypt_stat->cs_mutex); |
244 | - ecryptfs_printk(KERN_DEBUG, "inode w/ addr = [0x%p], i_ino = [0x%.16x] " | |
245 | - "size: [0x%.16x]\n", inode, inode->i_ino, | |
246 | - i_size_read(inode)); | |
244 | + ecryptfs_printk(KERN_DEBUG, "inode w/ addr = [0x%p], i_ino = " | |
245 | + "[0x%.16lx] size: [0x%.16llx]\n", inode, inode->i_ino, | |
246 | + (unsigned long long)i_size_read(inode)); | |
247 | 247 | goto out; |
248 | 248 | out_free: |
249 | 249 | kmem_cache_free(ecryptfs_file_info_cache, |
fs/ecryptfs/keystore.c
... | ... | @@ -59,7 +59,7 @@ |
59 | 59 | break; |
60 | 60 | default: |
61 | 61 | ecryptfs_printk(KERN_WARNING, "Unknown error code: " |
62 | - "[0x%.16x]\n", err_code); | |
62 | + "[0x%.16lx]\n", err_code); | |
63 | 63 | rc = -EINVAL; |
64 | 64 | } |
65 | 65 | return rc; |
... | ... | @@ -1864,8 +1864,8 @@ |
1864 | 1864 | "session key for authentication token with sig " |
1865 | 1865 | "[%.*s]; rc = [%d]. Removing auth tok " |
1866 | 1866 | "candidate from the list and searching for " |
1867 | - "the next match.\n", candidate_auth_tok_sig, | |
1868 | - ECRYPTFS_SIG_SIZE_HEX, rc); | |
1867 | + "the next match.\n", ECRYPTFS_SIG_SIZE_HEX, | |
1868 | + candidate_auth_tok_sig, rc); | |
1869 | 1869 | list_for_each_entry_safe(auth_tok_list_item, |
1870 | 1870 | auth_tok_list_item_tmp, |
1871 | 1871 | &auth_tok_list, list) { |
fs/ecryptfs/main.c
... | ... | @@ -810,9 +810,10 @@ |
810 | 810 | ecryptfs_printk(KERN_ERR, "The eCryptfs extent size is " |
811 | 811 | "larger than the host's page size, and so " |
812 | 812 | "eCryptfs cannot run on this system. The " |
813 | - "default eCryptfs extent size is [%d] bytes; " | |
814 | - "the page size is [%d] bytes.\n", | |
815 | - ECRYPTFS_DEFAULT_EXTENT_SIZE, PAGE_CACHE_SIZE); | |
813 | + "default eCryptfs extent size is [%u] bytes; " | |
814 | + "the page size is [%lu] bytes.\n", | |
815 | + ECRYPTFS_DEFAULT_EXTENT_SIZE, | |
816 | + (unsigned long)PAGE_CACHE_SIZE); | |
816 | 817 | goto out; |
817 | 818 | } |
818 | 819 | rc = ecryptfs_init_kmem_caches(); |
fs/ecryptfs/mmap.c
... | ... | @@ -65,7 +65,7 @@ |
65 | 65 | rc = ecryptfs_encrypt_page(page); |
66 | 66 | if (rc) { |
67 | 67 | ecryptfs_printk(KERN_WARNING, "Error encrypting " |
68 | - "page (upper index [0x%.16x])\n", page->index); | |
68 | + "page (upper index [0x%.16lx])\n", page->index); | |
69 | 69 | ClearPageUptodate(page); |
70 | 70 | goto out; |
71 | 71 | } |
... | ... | @@ -237,7 +237,7 @@ |
237 | 237 | ClearPageUptodate(page); |
238 | 238 | else |
239 | 239 | SetPageUptodate(page); |
240 | - ecryptfs_printk(KERN_DEBUG, "Unlocking page with index = [0x%.16x]\n", | |
240 | + ecryptfs_printk(KERN_DEBUG, "Unlocking page with index = [0x%.16lx]\n", | |
241 | 241 | page->index); |
242 | 242 | unlock_page(page); |
243 | 243 | return rc; |
... | ... | @@ -488,7 +488,7 @@ |
488 | 488 | } else |
489 | 489 | ecryptfs_printk(KERN_DEBUG, "Not a new file\n"); |
490 | 490 | ecryptfs_printk(KERN_DEBUG, "Calling fill_zeros_to_end_of_page" |
491 | - "(page w/ index = [0x%.16x], to = [%d])\n", index, to); | |
491 | + "(page w/ index = [0x%.16lx], to = [%d])\n", index, to); | |
492 | 492 | if (!(crypt_stat->flags & ECRYPTFS_ENCRYPTED)) { |
493 | 493 | rc = ecryptfs_write_lower_page_segment(ecryptfs_inode, page, 0, |
494 | 494 | to); |
495 | 495 | |
496 | 496 | |
... | ... | @@ -503,19 +503,20 @@ |
503 | 503 | rc = fill_zeros_to_end_of_page(page, to); |
504 | 504 | if (rc) { |
505 | 505 | ecryptfs_printk(KERN_WARNING, "Error attempting to fill " |
506 | - "zeros in page with index = [0x%.16x]\n", index); | |
506 | + "zeros in page with index = [0x%.16lx]\n", index); | |
507 | 507 | goto out; |
508 | 508 | } |
509 | 509 | rc = ecryptfs_encrypt_page(page); |
510 | 510 | if (rc) { |
511 | 511 | ecryptfs_printk(KERN_WARNING, "Error encrypting page (upper " |
512 | - "index [0x%.16x])\n", index); | |
512 | + "index [0x%.16lx])\n", index); | |
513 | 513 | goto out; |
514 | 514 | } |
515 | 515 | if (pos + copied > i_size_read(ecryptfs_inode)) { |
516 | 516 | i_size_write(ecryptfs_inode, pos + copied); |
517 | 517 | ecryptfs_printk(KERN_DEBUG, "Expanded file size to " |
518 | - "[0x%.16x]\n", i_size_read(ecryptfs_inode)); | |
518 | + "[0x%.16llx]\n", | |
519 | + (unsigned long long)i_size_read(ecryptfs_inode)); | |
519 | 520 | } |
520 | 521 | rc = ecryptfs_write_inode_size_to_metadata(ecryptfs_inode); |
521 | 522 | if (rc) |