drivers/efuse/efuse: Drivers Registered With World Write Permissions(Part 1)

Description:

In kernel builds, any unprivileged process running on the NuttX device
can open /dev/efuse and attempt to read/write fuse content. Reading the
fuses may provide valuable information to an attacker controlling the user
process. The write operation, in extreme cases where the fuse blocks are
not locked, may brick the device.

This is part of https://github.com/apache/nuttx/issues/19410

Compiles ok.

Signed-off-by: Catalin Visinescu <catalin_visinescu@yahoo.com>
This commit is contained in:
Catalin Visinescu 2026-07-12 03:13:00 -04:00 committed by Alin Jerpelea
parent 0d2993dd87
commit 8d2b71d127
75 changed files with 85 additions and 85 deletions

View file

@ -359,7 +359,7 @@ int arm_wdtinit(void)
/* Register as /dev/wdt */
ret = register_driver("/dev/wdt", &g_wdtops, 0666, NULL);
ret = register_driver("/dev/wdt", &g_wdtops, 0600, NULL);
if (ret)
{
return ERROR;

View file

@ -757,7 +757,7 @@ int stm32_bbsraminitialize(char *devpath, int *sizes)
{
snprintf(devname, sizeof(devname), "%s%d", devpath, i);
ret = register_driver(devname, &g_stm32_bbsram_fops,
0666, &g_bbsram[i]);
0600, &g_bbsram[i]);
}
/* Disallow Access */

View file

@ -6037,7 +6037,7 @@ int hrtim_register(const char *path, struct hrtim_dev_s *dev)
/* Register the HRTIM character driver */
return register_driver(path, &g_hrtim_fops, 0444, dev);
return register_driver(path, &g_hrtim_fops, 0440, dev);
}
#endif /* CONFIG_STM32_HRTIM_DISABLE_CHARDRV */

View file

@ -1105,7 +1105,7 @@ int cxd56_adcinitialize(void)
int ret = OK;
#if defined (CONFIG_CXD56_LPADC0) || defined (CONFIG_CXD56_LPADC0_1) || defined (CONFIG_CXD56_LPADC_ALL)
ret = register_driver("/dev/lpadc0", &g_adcops, 0666, &g_lpadc0priv);
ret = register_driver("/dev/lpadc0", &g_adcops, 0600, &g_lpadc0priv);
if (ret < 0)
{
aerr("Failed to register driver(lpadc0): %d\n", ret);
@ -1114,7 +1114,7 @@ int cxd56_adcinitialize(void)
#endif
#if defined (CONFIG_CXD56_LPADC1) || defined (CONFIG_CXD56_LPADC0_1) || defined (CONFIG_CXD56_LPADC_ALL)
ret = register_driver("/dev/lpadc1", &g_adcops, 0666, &g_lpadc1priv);
ret = register_driver("/dev/lpadc1", &g_adcops, 0600, &g_lpadc1priv);
if (ret < 0)
{
aerr("Failed to register driver(lpadc1): %d\n", ret);
@ -1123,7 +1123,7 @@ int cxd56_adcinitialize(void)
#endif
#if defined (CONFIG_CXD56_LPADC2) || defined (CONFIG_CXD56_LPADC_ALL)
ret = register_driver("/dev/lpadc2", &g_adcops, 0666, &g_lpadc2priv);
ret = register_driver("/dev/lpadc2", &g_adcops, 0600, &g_lpadc2priv);
if (ret < 0)
{
aerr("Failed to register driver(lpadc2): %d\n", ret);
@ -1132,7 +1132,7 @@ int cxd56_adcinitialize(void)
#endif
#if defined (CONFIG_CXD56_LPADC3) || defined (CONFIG_CXD56_LPADC_ALL)
ret = register_driver("/dev/lpadc3", &g_adcops, 0666, &g_lpadc3priv);
ret = register_driver("/dev/lpadc3", &g_adcops, 0600, &g_lpadc3priv);
if (ret < 0)
{
aerr("Failed to register driver(lpadc3): %d\n", ret);
@ -1141,7 +1141,7 @@ int cxd56_adcinitialize(void)
#endif
#ifdef CONFIG_CXD56_HPADC0
ret = register_driver("/dev/hpadc0", &g_adcops, 0666, &g_hpadc0priv);
ret = register_driver("/dev/hpadc0", &g_adcops, 0600, &g_hpadc0priv);
if (ret < 0)
{
aerr("Failed to register driver(hpadc0): %d\n", ret);
@ -1150,7 +1150,7 @@ int cxd56_adcinitialize(void)
#endif
#ifdef CONFIG_CXD56_HPADC1
ret = register_driver("/dev/hpadc1", &g_adcops, 0666, &g_hpadc1priv);
ret = register_driver("/dev/hpadc1", &g_adcops, 0600, &g_hpadc1priv);
if (ret < 0)
{
aerr("Failed to register driver(hpadc1): %d\n", ret);

View file

@ -623,7 +623,7 @@ int cxd56_charger_initialize(const char *devpath)
/* Register battery driver */
ret = register_driver(devpath, &g_chargerops, 0666, priv);
ret = register_driver(devpath, &g_chargerops, 0600, priv);
if (ret < 0)
{
baterr("ERROR: register_driver failed: %d\n", ret);

View file

@ -347,7 +347,7 @@ int cxd56_gauge_initialize(const char *devpath)
/* Register battery driver */
ret = register_driver(devpath, &g_gaugeops, 0666, priv);
ret = register_driver(devpath, &g_gaugeops, 0600, priv);
if (ret < 0)
{
baterr("ERROR: register_driver failed: %d\n", ret);

View file

@ -186,7 +186,7 @@ int cxd56_ge2dinitialize(const char *devname)
{
int ret;
ret = register_driver(devname, &g_ge2dfops, 0666, NULL);
ret = register_driver(devname, &g_ge2dfops, 0600, NULL);
if (ret != 0)
{
return ERROR;

View file

@ -649,7 +649,7 @@ static int cxd56_geofence_register(const char *devpath)
goto err0;
}
ret = register_driver(devpath, &g_geofencefops, 0666, priv);
ret = register_driver(devpath, &g_geofencefops, 0600, priv);
if (ret < 0)
{
gnsserr("Failed to register driver: %d\n", ret);

View file

@ -3207,7 +3207,7 @@ static int cxd56_gnss_register(const char *devpath)
goto err0;
}
ret = register_driver(devpath, &g_gnssfops, 0666, priv);
ret = register_driver(devpath, &g_gnssfops, 0600, priv);
if (ret < 0)
{
gnsserr("Failed to register driver: %d\n", ret);

View file

@ -416,7 +416,7 @@ static int hif_initialize(struct hostif_buff_s *buffer)
snprintf(devpath, sizeof(devpath), "/dev/hostif%c%d",
(priv->flags & HOSTIF_BUFF_ATTR_READ) ? 'r' : 'w', num);
ret = register_driver(devpath, &g_hif_fops, 0666, priv);
ret = register_driver(devpath, &g_hif_fops, 0600, priv);
if (ret < 0)
{
hiferr("ERROR: Failed to register %s (%d)\n", devpath, ret);

View file

@ -226,7 +226,7 @@ static inline int cxd56_sphdevinit(const char *devname, int num)
snprintf(fullpath, sizeof(fullpath), "/dev/%s%d", devname, num);
ret = register_driver(fullpath, &g_sph_fops, 0666, (void *)priv);
ret = register_driver(fullpath, &g_sph_fops, 0600, (void *)priv);
if (ret != 0)
{
return ERROR;

View file

@ -162,5 +162,5 @@ void cxd56_sysctlinitialize(void)
{
cxd56_iccinit(CXD56_PROTO_SYSCTL);
cxd56_iccregisterhandler(CXD56_PROTO_SYSCTL, sysctl_rxhandler, NULL);
register_driver("/dev/sysctl", &g_sysctlfops, 0666, NULL);
register_driver("/dev/sysctl", &g_sysctlfops, 0600, NULL);
}

View file

@ -233,7 +233,7 @@ static ssize_t uart0_write(struct file *filep,
int cxd56_uart0initialize(const char *devname)
{
return register_driver(devname, &g_uart0fops, 0666, NULL);
return register_driver(devname, &g_uart0fops, 0600, NULL);
}
/****************************************************************************

View file

@ -752,7 +752,7 @@ int phyplus_stub_register(void)
{
char devname[16];
snprintf(devname, sizeof(devname), "/dev/phyplus");
return register_driver(devname, &g_stub_drvrops, 0666, NULL);
return register_driver(devname, &g_stub_drvrops, 0600, NULL);
}
/****************************************************************************

View file

@ -507,6 +507,6 @@ static hci_dev_t g_hcidev =
int amebaz_bt_hci_uart_register(const char *path)
{
return register_driver(path, &g_hcidev.i_ops, 0666, &g_hcidev);
return register_driver(path, &g_hcidev.i_ops, 0600, &g_hcidev);
}

View file

@ -1818,7 +1818,7 @@ int sam_tsd_register(struct sam_adc_s *adc, int minor)
snprintf(devname, sizeof(devname), DEV_FORMAT, minor);
iinfo("Registering %s\n", devname);
ret = register_driver(devname, &g_tsdops, 0666, priv);
ret = register_driver(devname, &g_tsdops, 0600, priv);
if (ret < 0)
{
ierr("ERROR: register_driver() failed: %d\n", ret);

View file

@ -757,7 +757,7 @@ int stm32_bbsraminitialize(char *devpath, int *sizes)
{
snprintf(devname, sizeof(devname), "%s%d", devpath, i);
ret = register_driver(devname, &g_stm32_bbsram_fops,
0666, &g_bbsram[i]);
0600, &g_bbsram[i]);
}
/* Disallow Access */

View file

@ -828,7 +828,7 @@ int stm32_bbsraminitialize(char *devpath, int *sizes)
{
snprintf(devname, sizeof(devname), "%s%d", devpath, i);
ret = register_driver(devname, &g_stm32_bbsram_fops,
0666, &g_bbsram[i]);
0600, &g_bbsram[i]);
}
/* Disallow Access */

View file

@ -306,7 +306,7 @@ void spi_console_init(void)
/* Driver register */
ret = register_driver("/dev/console", &g_consoleops, 0666, NULL);
ret = register_driver("/dev/console", &g_consoleops, 0600, NULL);
if (ret < 0)
{
syslog(LOG_DEBUG, "register spi_console failed\n");

View file

@ -662,7 +662,7 @@ int rx65n_sbraminitialize(char *devpath, int *sizes)
for (i = 0; i < fcnt && ret >= OK; i++)
{
snprintf(devname, sizeof(devname), "%s%d", devpath, i);
ret = register_driver(devname, &g_rx65n_sbram_fops, 0666, &g_sbram[i]);
ret = register_driver(devname, &g_rx65n_sbram_fops, 0660, &g_sbram[i]);
}
/* Disallow Access */

View file

@ -403,7 +403,7 @@ struct file *esp_dedic_gpio_new_bundle(
dedic_gpio_common.refs++;
register_driver(config->path, &dedic_gpio_ops,
0666, priv);
0600, priv);
return (struct file *)priv;
}

View file

@ -322,6 +322,6 @@ int esp_lp_mailbox_init(void)
}
register_driver("/dev/lp_mailbox", esp_lp_mailbox_priv.ops,
0666, (void *)&esp_lp_mailbox_priv);
0600, (void *)&esp_lp_mailbox_priv);
return OK;
}

View file

@ -306,7 +306,7 @@ static ssize_t esp_nxdiag_read(struct file *filep,
static int esp_nxdiag_register(void)
{
return register_driver("/dev/nxdiag", &g_nxdiagops, 0444, NULL);
return register_driver("/dev/nxdiag", &g_nxdiagops, 0440, NULL);
}
/****************************************************************************

View file

@ -417,7 +417,7 @@ static void esp_temp_sensor_register(struct esp_temp_priv_s *priv)
{
#ifndef CONFIG_ESPRESSIF_TEMP_UORB
register_driver(CONFIG_ESPRESSIF_TEMP_PATH, &g_esp_temp_sensor_fops,
0666, priv);
0660, priv);
#else
priv->lower.type = SENSOR_TYPE_TEMPERATURE;
sensor_register(&priv->lower, CONFIG_ESPRESSIF_TEMP_PATH_DEVNO);

View file

@ -423,7 +423,7 @@ static int esp_ulp_write(struct file *filep,
static void esp_ulp_register(void)
{
register_driver("/dev/ulp", &g_esp_ulp_fops, 0666, NULL);
register_driver("/dev/ulp", &g_esp_ulp_fops, 0660, NULL);
}
/****************************************************************************

View file

@ -303,5 +303,5 @@ static ssize_t keypad_read(struct file *filep, char *buf, size_t buflen)
void qemu_keypad(void)
{
register_driver("/dev/keypad", &g_keypadops, 0444, NULL);
register_driver("/dev/keypad", &g_keypadops, 0440, NULL);
}

View file

@ -588,7 +588,7 @@ int qemu_vga(void)
return ret;
}
register_driver("/dev/lcd", &g_vgaops, 0666, NULL);
register_driver("/dev/lcd", &g_vgaops, 0660, NULL);
return OK;
}

View file

@ -313,7 +313,7 @@ static ssize_t esp_nxdiag_read(struct file *filep,
static int esp_nxdiag_register(void)
{
return register_driver("/dev/nxdiag", &g_nxdiagops, 0444, NULL);
return register_driver("/dev/nxdiag", &g_nxdiagops, 0440, NULL);
}
/****************************************************************************

View file

@ -173,7 +173,7 @@ static int esp_ulp_write(struct file *filep,
static void esp_ulp_register(void)
{
register_driver("/dev/ulp", &g_esp_ulp_fops, 0666, NULL);
register_driver("/dev/ulp", &g_esp_ulp_fops, 0600, NULL);
}
/****************************************************************************

View file

@ -249,7 +249,7 @@ int esp_himem_init(void)
/* Register the character driver */
ret = register_driver("/dev/himem", &g_himemfops, 0666, NULL);
ret = register_driver("/dev/himem", &g_himemfops, 0600, NULL);
if (ret < 0)
{
merr("ERROR: Failed to register driver: %d\n", ret);

View file

@ -324,7 +324,7 @@ int himem_chardev_register(char *name, size_t size)
return ret;
}
ret = register_driver(dev->name, &g_fops, 0666, dev);
ret = register_driver(dev->name, &g_fops, 0600, dev);
if (ret != 0)
{
merr("Failed to register driver. dev=%s\n", dev->name);

View file

@ -1070,7 +1070,7 @@ int esp_himem_init(void)
/* Register the character driver */
ret = register_driver("/dev/himem", &g_himemfops, 0666, NULL);
ret = register_driver("/dev/himem", &g_himemfops, 0600, NULL);
if (ret < 0)
{
merr("ERROR: Failed to register driver: %d\n", ret);

View file

@ -1863,7 +1863,7 @@ int audio_register(FAR const char *name, FAR struct audio_lowerhalf_s *dev)
dev->priv = upper;
audinfo("Registering %s\n", path);
return register_driver(path, &g_audioops, 0666, upper);
return register_driver(path, &g_audioops, 0660, upper);
}
#endif /* CONFIG_AUDIO */

View file

@ -556,7 +556,7 @@ int ak09912_scu_register(const char *devpath, int minor,
/* Register the character driver */
snprintf(path, sizeof(path), "%s%d", devpath, minor);
ret = register_driver(path, &g_ak09912fops, 0666, priv);
ret = register_driver(path, &g_ak09912fops, 0660, priv);
if (ret < 0)
{
snerr("Failed to register driver: %d\n", ret);

View file

@ -974,7 +974,7 @@ int apds9930als_register(const char *devpath, int minor,
/* Register the character driver */
snprintf(path, sizeof(path), "%s%d", devpath, minor);
ret = register_driver(path, &g_apds9930alsfops, 0666, priv);
ret = register_driver(path, &g_apds9930alsfops, 0660, priv);
if (ret < 0)
{
snerr("Failed to register driver: %d\n", ret);
@ -1028,7 +1028,7 @@ int apds9930ps_register(const char *devpath, int minor,
/* Register the character driver */
snprintf(path, sizeof(path), "%s%d", devpath, minor);
ret = register_driver(path, &g_apds9930psfops, 0666, priv);
ret = register_driver(path, &g_apds9930psfops, 0660, priv);
if (ret < 0)
{
snerr("Failed to register driver: %d\n", ret);

View file

@ -376,7 +376,7 @@ int bh1721fvc_register(const char *devpath, int minor,
/* Register the character driver */
snprintf(path, sizeof(path), "%s%d", devpath, minor);
ret = register_driver(path, &g_bh1721fvcfops, 0666, priv);
ret = register_driver(path, &g_bh1721fvcfops, 0660, priv);
if (ret < 0)
{
snerr("Failed to register driver: %d\n", ret);

View file

@ -510,7 +510,7 @@ int bh1745nuc_register(const char *devpath, int minor,
/* Register the character driver */
snprintf(path, sizeof(path), "%s%d", devpath, minor);
ret = register_driver(path, &g_bh1745nucfops, 0666, priv);
ret = register_driver(path, &g_bh1745nucfops, 0660, priv);
if (ret < 0)
{
snerr("Failed to register driver: %d\n", ret);

View file

@ -541,7 +541,7 @@ int bm1383glv_register(const char *devpath, int minor,
/* Register the character driver */
snprintf(path, sizeof(path), "%s%d", devpath, minor);
ret = register_driver(path, &g_bm1383glvfops, 0666, priv);
ret = register_driver(path, &g_bm1383glvfops, 0660, priv);
if (ret < 0)
{
snerr("Failed to register driver: %d\n", ret);

View file

@ -525,7 +525,7 @@ int bm1422gmv_register(const char *devpath, int minor,
/* Register the character driver */
snprintf(path, sizeof(path), "%s%d", devpath, minor);
ret = register_driver(path, &g_bm1422gmvfops, 0666, priv);
ret = register_driver(path, &g_bm1422gmvfops, 0660, priv);
if (ret < 0)
{
snerr("Failed to register driver: %d\n", ret);

View file

@ -828,7 +828,7 @@ static int bmi160_devregister(const char *devpath,
#endif
snprintf(path, sizeof(path), "%s%d", devpath, minor);
ret = register_driver(path, fops, 0666, priv);
ret = register_driver(path, fops, 0660, priv);
if (ret < 0)
{
snerr("Failed to register driver: %d\n", ret);

View file

@ -931,7 +931,7 @@ int bmp280press_register(const char *devpath, int minor,
/* Register the character driver */
snprintf(path, sizeof(path), "%s%d", devpath, minor);
ret = register_driver(path, &g_bmp280pressfops, 0666, priv);
ret = register_driver(path, &g_bmp280pressfops, 0660, priv);
if (ret < 0)
{
snerr("Failed to register driver: %d\n", ret);
@ -982,7 +982,7 @@ int bmp280temp_register(const char *devpath, int minor,
/* Register the character driver */
snprintf(path, sizeof(path), "%s%d", devpath, minor);
ret = register_driver(path, &g_bmp280tempfops, 0666, priv);
ret = register_driver(path, &g_bmp280tempfops, 0660, priv);
if (ret < 0)
{
snerr("Failed to register driver: %d\n", ret);

View file

@ -2268,7 +2268,7 @@ int cxd5610_gnss_register(const char *devpath,
/* Register the character driver */
ret = register_driver(devpath, &g_cxd5610fops, 0666, priv);
ret = register_driver(devpath, &g_cxd5610fops, 0660, priv);
if (ret < 0)
{
snerr("ERROR: Failed to register driver: %d\n", ret);

View file

@ -510,7 +510,7 @@ int kx022_register(const char *devpath, int minor,
/* Register the character driver */
snprintf(path, sizeof(path), "%s%d", devpath, minor);
ret = register_driver(path, &g_kx022fops, 0666, priv);
ret = register_driver(path, &g_kx022fops, 0660, priv);
if (ret < 0)
{
snerr("Failed to register driver: %d\n", ret);

View file

@ -814,7 +814,7 @@ int lt1pa01als_register(const char *devpath, int minor,
/* Register the character driver */
snprintf(path, sizeof(path), "%s%d", devpath, minor);
ret = register_driver(path, &g_lt1pa01alsfops, 0666, priv);
ret = register_driver(path, &g_lt1pa01alsfops, 0660, priv);
if (ret < 0)
{
snerr("Failed to register driver: %d\n", ret);
@ -868,7 +868,7 @@ int lt1pa01prox_register(const char *devpath, int minor,
/* Register the character driver */
snprintf(path, sizeof(path), "%s%d", devpath, minor);
ret = register_driver(path, &g_lt1pa01proxfops, 0666, priv);
ret = register_driver(path, &g_lt1pa01proxfops, 0660, priv);
if (ret < 0)
{
snerr("Failed to register driver: %d\n", ret);

View file

@ -931,7 +931,7 @@ int rpr0521rsals_register(const char *devpath, int minor,
/* Register the character driver */
snprintf(path, sizeof(path), "%s%d", devpath, minor);
ret = register_driver(path, &g_rpr0521rsalsfops, 0666, priv);
ret = register_driver(path, &g_rpr0521rsalsfops, 0660, priv);
if (ret < 0)
{
snerr("Failed to register driver: %d\n", ret);
@ -985,7 +985,7 @@ int rpr0521rsps_register(const char *devpath, int minor,
/* Register the character driver */
snprintf(path, sizeof(path), "%s%d", devpath, minor);
ret = register_driver(path, &g_rpr0521rspsfops, 0666, priv);
ret = register_driver(path, &g_rpr0521rspsfops, 0660, priv);
if (ret < 0)
{
snerr("Failed to register driver: %d\n", ret);

View file

@ -244,7 +244,7 @@ void kl_tsi_initialize(void)
/* And finally register the TSI character driver */
register_driver("/dev/tsi", &g_tsi_ops, 0444, NULL);
register_driver("/dev/tsi", &g_tsi_ops, 0440, NULL);
}
#endif /* CONFIG_KL_TSI */

View file

@ -245,7 +245,7 @@ void kl_tsi_initialize(void)
/* And finally register the TSI character driver */
register_driver("/dev/tsi", &g_tsi_ops, 0444, NULL);
register_driver("/dev/tsi", &g_tsi_ops, 0440, NULL);
}
#endif /* CONFIG_KL_TSI */

View file

@ -1267,7 +1267,7 @@ int sam_slcd_initialize(void)
/* Register the LCD device driver */
ret = register_driver("/dev/slcd0", &g_slcdops, 0644, &g_slcdstate);
ret = register_driver("/dev/slcd0", &g_slcdops, 0640, &g_slcdstate);
g_slcdstate.initialized = true;
/* Turn on the backlight */

View file

@ -1508,7 +1508,7 @@ int stm32_tsc_setup(int minor)
snprintf(devname, sizeof(devname), DEV_FORMAT, minor);
iinfo("Registering %s\n", devname);
ret = register_driver(devname, &g_tc_fops, 0666, priv);
ret = register_driver(devname, &g_tc_fops, 0660, priv);
if (ret < 0)
{
ierr("ERROR: register_driver() failed: %d\n", ret);

View file

@ -1371,7 +1371,7 @@ int pic32mx_tsc_setup(int minor)
snprintf(devname, sizeof(devname), DEV_FORMAT, minor);
iinfo("Registering %s\n", devname);
ret = register_driver(devname, &g_tc_fops, 0666, priv);
ret = register_driver(devname, &g_tc_fops, 0660, priv);
if (ret < 0)
{
ierr("ERROR: register_driver() failed: %d\n", ret);

View file

@ -1174,7 +1174,7 @@ static int csefree(FAR struct csession *cse)
void devcrypto_register(void)
{
register_driver("/dev/crypto", &g_cryptoops, 0666, NULL);
register_driver("/dev/crypto", &g_cryptoops, 0660, NULL);
#ifdef CONFIG_CRYPTO_CRYPTODEV_SOFTWARE_CRYPTO
swcr_init();

View file

@ -826,5 +826,5 @@ int ds2xxx_initialize(FAR struct onewire_dev_s *dev,
priv->master->dev = dev;
priv->devtype = devtype;
return register_driver(devname, &g_ds2xxx_fops, 0666, priv);
return register_driver(devname, &g_ds2xxx_fops, 0600, priv);
}

View file

@ -243,7 +243,7 @@ int aie_register(FAR const char *path,
/* Register the aie device */
ret = register_driver(path, &g_aie_ops, 0666, upper);
ret = register_driver(path, &g_aie_ops, 0600, upper);
if (ret < 0)
{
_err("register aie driver failed: %d\n", ret);

View file

@ -803,7 +803,7 @@ int adc_register(FAR const char *path, FAR struct adc_dev_s *dev)
/* Register the ADC character driver */
ret = register_driver(path, &g_adc_fops, 0444, dev);
ret = register_driver(path, &g_adc_fops, 0400, dev);
if (ret < 0)
{
if (alloc_channel)

View file

@ -600,7 +600,7 @@ int ads1242_register(FAR const char *devpath, FAR struct spi_dev_s *spi,
/* Register the character driver */
ret = register_driver(devpath, &g_ads1242_fops, 0666, priv);
ret = register_driver(devpath, &g_ads1242_fops, 0600, priv);
if (ret < 0)
{
_err("ERROR: Failed to register driver: %d\n", ret);

View file

@ -270,7 +270,7 @@ int ads7046_register(FAR const char *devpath, FAR struct spi_dev_s *spi,
/* Register the character driver */
int ret = register_driver(devpath, &ads7046_fops, 0666, priv);
int ret = register_driver(devpath, &ads7046_fops, 0600, priv);
if (ret < 0)
{
aerr("ERROR: Failed to register driver: %s (%d)\n", strerror(-ret),

View file

@ -372,7 +372,7 @@ int comp_register(FAR const char *path, FAR struct comp_dev_s *dev)
/* Register the COMP character driver */
ret = register_driver(path, &g_comp_fops, 0444, dev);
ret = register_driver(path, &g_comp_fops, 0400, dev);
if (ret < 0)
{
nxmutex_destroy(&dev->ad_lock);

View file

@ -503,5 +503,5 @@ int dac_register(FAR const char *path, FAR struct dac_dev_s *dev)
dev->ad_ops->ao_reset(dev);
return register_driver(path, &g_dac_fops, 0222, dev);
return register_driver(path, &g_dac_fops, 0200, dev);
}

View file

@ -949,7 +949,7 @@ int hx711_register(unsigned char minor, FAR struct hx711_lower_s *lower)
}
snprintf(devname, sizeof(devname), DEVNAME_FMT, minor);
ret = register_driver(devname, &g_hx711_fops, 0666, dev);
ret = register_driver(devname, &g_hx711_fops, 0600, dev);
if (ret)
{
kmm_free(dev);

View file

@ -211,7 +211,7 @@ int opamp_register(FAR const char *path, FAR struct opamp_dev_s *dev)
/* Register the OPAMP character driver */
ret = register_driver(path, &g_opamp_fops, 0444, dev);
ret = register_driver(path, &g_opamp_fops, 0400, dev);
if (ret < 0)
{
nxmutex_destroy(&dev->ad_closelock);

View file

@ -966,7 +966,7 @@ int tone_register(FAR const char *path, FAR struct pwm_lowerhalf_s *tone,
/* Register the PWM device */
audinfo("Registering %s\n", path);
return register_driver(path, &g_toneops, 0666, upper);
return register_driver(path, &g_toneops, 0600, upper);
}
#endif /* CONFIG_AUDIO_TONE */

View file

@ -69,7 +69,7 @@ int bchdev_register(FAR const char *blkdev, FAR const char *chardev,
/* Then setup the character device */
ret = register_driver(chardev, &g_bch_fops, 0666, handle);
ret = register_driver(chardev, &g_bch_fops, 0600, handle);
if (ret < 0)
{
ferr("ERROR: register_driver failed: %d\n", -ret);

View file

@ -1291,7 +1291,7 @@ int can_register(FAR const char *path, FAR struct can_dev_s *dev)
/* Register the CAN device */
caninfo("Registering %s\n", path);
return register_driver(path, &g_canops, 0666, dev);
return register_driver(path, &g_canops, 0600, dev);
}
/****************************************************************************

View file

@ -1682,7 +1682,7 @@ int mfrc522_register(FAR const char *devpath, FAR struct spi_dev_s *spi)
/* Register the character driver */
ret = register_driver(devpath, &g_mfrc522fops, 0666, dev);
ret = register_driver(devpath, &g_mfrc522fops, 0600, dev);
if (ret < 0)
{
ctlserr("ERROR: Failed to register driver: %d\n", ret);

View file

@ -1158,7 +1158,7 @@ int pn532_register(FAR const char *devpath, FAR struct spi_dev_s *spi,
/* Register the character driver */
ret = register_driver(devpath, &g_pn532fops, 0666, dev);
ret = register_driver(devpath, &g_pn532fops, 0600, dev);
if (ret < 0)
{
ctlserr("ERROR: Failed to register driver: %d\n", ret);

View file

@ -484,7 +484,7 @@ int tmc_etr_register(FAR struct coresight_tmc_dev_s *tmcdev,
}
snprintf(pathname, sizeof(pathname), "/dev/%s", desc->name);
ret = register_driver(pathname, &g_tmc_fops, 0444, tmcdev);
ret = register_driver(pathname, &g_tmc_fops, 0400, tmcdev);
if (ret < 0)
{
cserr("%s:driver register failed\n", desc->name);

View file

@ -324,7 +324,7 @@ void devurandom_register(void)
g_prng.state.z = g_prng.state.x << 25;
#endif
register_driver("/dev/urandom", &g_urand_fops, 0666, NULL);
register_driver("/dev/urandom", &g_urand_fops, 0600, NULL);
}
#endif /* CONFIG_DEV_URANDOM && CONFIG_DEV_URANDOM_ARCH */

View file

@ -359,7 +359,7 @@ int rng90_register(FAR const char *devpath, FAR struct i2c_master_s *i2c,
/* Register the character driver */
ret = register_driver(devpath, &g_rng90_fops, 0666, priv);
ret = register_driver(devpath, &g_rng90_fops, 0600, priv);
if (ret < 0)
{
crypterr("ERROR: Failed to register driver: %d\n", ret);

View file

@ -263,7 +263,7 @@ int se05x_register(FAR const char *devpath, FAR struct i2c_master_s *i2c,
/* Register driver */
ret = register_driver(devpath, &g_fops, 0666, priv);
ret = register_driver(devpath, &g_fops, 0600, priv);
if (ret < 0)
{
crypterr("ERROR: Failed to register driver: %d\n", ret);

View file

@ -1086,7 +1086,7 @@ int ee24xx_initialize(FAR struct i2c_master_s *bus, uint8_t devaddr,
strlcpy(uuidname, devname, size);
strlcat(uuidname, ".uuid", size);
ret = register_driver(uuidname, &g_at24cs_uuid_fops, 0444, eedev);
ret = register_driver(uuidname, &g_at24cs_uuid_fops, 0400, eedev);
kmm_free(uuidname);
@ -1097,6 +1097,6 @@ int ee24xx_initialize(FAR struct i2c_master_s *bus, uint8_t devaddr,
}
#endif
return register_driver_with_size(devname, &g_ee24xx_fops, 0666, eedev,
return register_driver_with_size(devname, &g_ee24xx_fops, 0600, eedev,
eedev->size);
}

View file

@ -1520,7 +1520,7 @@ int ee25xx_initialize(FAR struct spi_dev_s *dev, uint16_t spi_devid,
"readonly %d\n", devname, eedev->size, eedev->pgsize,
eedev->addrlen, eedev->readonly);
return register_driver(devname, &g_ee25xx_fops, 0666, eedev);
return register_driver(devname, &g_ee25xx_fops, 0600, eedev);
}
/****************************************************************************

View file

@ -303,7 +303,7 @@ FAR void *efuse_register(FAR const char *path,
/* Register the efuse timer device */
ret = register_driver(path, &g_efuseops, 0666, upper);
ret = register_driver(path, &g_efuseops, 0600, upper);
if (ret < 0)
{
merr("register_driver failed: %d\n", ret);

View file

@ -416,7 +416,7 @@ int i2c_register(FAR struct i2c_master_s *i2c, int bus)
/* Create the character device name */
snprintf(devname, sizeof(devname), DEVNAME_FMT, bus);
ret = register_driver(devname, &g_i2cdrvr_fops, 0666, priv);
ret = register_driver(devname, &g_i2cdrvr_fops, 0600, priv);
if (ret < 0)
{
/* Free the device structure if we failed to create the character

View file

@ -567,7 +567,7 @@ int i2c_slave_register(FAR struct i2c_slave_s *dev, int bus, int addr,
}
snprintf(devname, sizeof(devname), DEVNAME_FMT, bus);
ret = register_driver(devname, &g_i2cslavefops, 0666, priv);
ret = register_driver(devname, &g_i2cslavefops, 0600, priv);
if (ret < 0)
{
kmm_free(priv);

View file

@ -692,7 +692,7 @@ int i2schar_register(FAR struct i2s_dev_s *i2s, int minor)
/* Create the character device name */
snprintf(devname, sizeof(devname), DEVNAME_FMT, minor);
ret = register_driver(devname, &g_i2schar_fops, 0666, priv);
ret = register_driver(devname, &g_i2schar_fops, 0600, priv);
if (ret < 0)
{
/* Free the device structure if we failed to create the character