Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge branch 'remotes/lorenzo/pci/endpoint'

- Use sysfs_emit() in "show" functions instead of sprintf() to avoid buffer
overruns (Kunihiko Hayashi)

* remotes/lorenzo/pci/endpoint:
PCI: endpoint: Use sysfs_emit() in "show" functions

+8 -9
+2 -2
drivers/pci/endpoint/functions/pci-epf-ntb.c
··· 1937 1937 struct config_group *group = to_config_group(item); \ 1938 1938 struct epf_ntb *ntb = to_epf_ntb(group); \ 1939 1939 \ 1940 - return sprintf(page, "%d\n", ntb->_name); \ 1940 + return sysfs_emit(page, "%d\n", ntb->_name); \ 1941 1941 } 1942 1942 1943 1943 #define EPF_NTB_W(_name) \ ··· 1966 1966 \ 1967 1967 sscanf(#_name, "mw%d", &win_no); \ 1968 1968 \ 1969 - return sprintf(page, "%lld\n", ntb->mws_size[win_no - 1]); \ 1969 + return sysfs_emit(page, "%lld\n", ntb->mws_size[win_no - 1]); \ 1970 1970 } 1971 1971 1972 1972 #define EPF_NTB_MW_W(_name) \
+6 -7
drivers/pci/endpoint/pci-ep-cfs.c
··· 197 197 198 198 static ssize_t pci_epc_start_show(struct config_item *item, char *page) 199 199 { 200 - return sprintf(page, "%d\n", 201 - to_pci_epc_group(item)->start); 200 + return sysfs_emit(page, "%d\n", to_pci_epc_group(item)->start); 202 201 } 203 202 204 203 CONFIGFS_ATTR(pci_epc_, start); ··· 319 320 struct pci_epf *epf = to_pci_epf_group(item)->epf; \ 320 321 if (WARN_ON_ONCE(!epf->header)) \ 321 322 return -EINVAL; \ 322 - return sprintf(page, "0x%04x\n", epf->header->_name); \ 323 + return sysfs_emit(page, "0x%04x\n", epf->header->_name); \ 323 324 } 324 325 325 326 #define PCI_EPF_HEADER_W_u32(_name) \ ··· 380 381 static ssize_t pci_epf_msi_interrupts_show(struct config_item *item, 381 382 char *page) 382 383 { 383 - return sprintf(page, "%d\n", 384 - to_pci_epf_group(item)->epf->msi_interrupts); 384 + return sysfs_emit(page, "%d\n", 385 + to_pci_epf_group(item)->epf->msi_interrupts); 385 386 } 386 387 387 388 static ssize_t pci_epf_msix_interrupts_store(struct config_item *item, ··· 400 401 static ssize_t pci_epf_msix_interrupts_show(struct config_item *item, 401 402 char *page) 402 403 { 403 - return sprintf(page, "%d\n", 404 - to_pci_epf_group(item)->epf->msix_interrupts); 404 + return sysfs_emit(page, "%d\n", 405 + to_pci_epf_group(item)->epf->msix_interrupts); 405 406 } 406 407 407 408 PCI_EPF_HEADER_R(vendorid)