summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/udev/cdrom_id/cdrom_id.c2
-rw-r--r--src/udev/keymap/keymap.c3
-rw-r--r--src/udev/libudev-queue.c4
-rw-r--r--src/udev/libudev-util-private.c8
-rw-r--r--src/udev/mtd_probe/mtd_probe.c9
-rw-r--r--src/udev/mtd_probe/probe_smartmedia.c19
-rw-r--r--src/udev/udev.h1
7 files changed, 25 insertions, 21 deletions
diff --git a/src/udev/cdrom_id/cdrom_id.c b/src/udev/cdrom_id/cdrom_id.c
index f90d52ec9..6d5b08161 100644
--- a/src/udev/cdrom_id/cdrom_id.c
+++ b/src/udev/cdrom_id/cdrom_id.c
@@ -138,7 +138,7 @@ static bool is_mounted(const char *device)
return mounted;
}
-static void info_scsi_cmd_err(struct udev *udev, char *cmd, int err)
+static void info_scsi_cmd_err(struct udev *udev, const char *cmd, int err)
{
if (err == -1) {
info(udev, "%s failed\n", cmd);
diff --git a/src/udev/keymap/keymap.c b/src/udev/keymap/keymap.c
index 4c30ccf31..cc37a9b8c 100644
--- a/src/udev/keymap/keymap.c
+++ b/src/udev/keymap/keymap.c
@@ -418,8 +418,9 @@ int main(int argc, char **argv)
/* Keymap file argument is a filename */
/* Open override file if present, otherwise default file */
char keymap_path[PATH_MAX];
+ FILE *f;
snprintf(keymap_path, sizeof(keymap_path), "%s%s", SYSCONFDIR "/udev/keymaps/", filearg);
- FILE *f = fopen(keymap_path, "r");
+ f = fopen(keymap_path, "r");
if (f) {
merge_table(fd, f);
} else {
diff --git a/src/udev/libudev-queue.c b/src/udev/libudev-queue.c
index 0e82cb6ae..48184ddaa 100644
--- a/src/udev/libudev-queue.c
+++ b/src/udev/libudev-queue.c
@@ -171,7 +171,7 @@ ssize_t udev_queue_skip_devpath(FILE *queue_file)
unsigned short int len;
if (fread(&len, sizeof(unsigned short int), 1, queue_file) == 1) {
- char devpath[len];
+ char *devpath = alloca(len);
/* use fread to skip, fseek might drop buffered data */
if (fread(devpath, 1, len, queue_file) == len)
@@ -197,7 +197,7 @@ ssize_t udev_queue_read_devpath(FILE *queue_file, char *devpath, size_t size)
/* if devpath was too long, skip unread characters */
if (read_bytes != len) {
unsigned short int skip_bytes = len - read_bytes;
- char buf[skip_bytes];
+ char *buf = alloca(skip_bytes);
if (fread(buf, 1, skip_bytes, queue_file) != skip_bytes)
return -1;
diff --git a/src/udev/libudev-util-private.c b/src/udev/libudev-util-private.c
index 08f0ba222..f764ab4d8 100644
--- a/src/udev/libudev-util-private.c
+++ b/src/udev/libudev-util-private.c
@@ -116,11 +116,11 @@ int util_delete_path(struct udev *udev, const char *path)
uid_t util_lookup_user(struct udev *udev, const char *user)
{
char *endptr;
- size_t buflen = sysconf(_SC_GETPW_R_SIZE_MAX);
- char buf[buflen];
struct passwd pwbuf;
struct passwd *pw;
uid_t uid;
+ size_t buflen = sysconf(_SC_GETPW_R_SIZE_MAX);
+ char *buf = alloca(buflen);
if (strcmp(user, "root") == 0)
return 0;
@@ -141,11 +141,11 @@ uid_t util_lookup_user(struct udev *udev, const char *user)
gid_t util_lookup_group(struct udev *udev, const char *group)
{
char *endptr;
- size_t buflen = sysconf(_SC_GETGR_R_SIZE_MAX);
- char *buf;
struct group grbuf;
struct group *gr;
gid_t gid = 0;
+ size_t buflen = sysconf(_SC_GETPW_R_SIZE_MAX);
+ char *buf = alloca(buflen);
if (strcmp(group, "root") == 0)
return 0;
diff --git a/src/udev/mtd_probe/mtd_probe.c b/src/udev/mtd_probe/mtd_probe.c
index 1aa08d385..70c04db40 100644
--- a/src/udev/mtd_probe/mtd_probe.c
+++ b/src/udev/mtd_probe/mtd_probe.c
@@ -28,19 +28,22 @@
int main(int argc, char** argv)
{
+ int mtd_fd;
+ int error;
+ mtd_info_t mtd_info;
+
if (argc != 2) {
printf("usage: mtd_probe /dev/mtd[n]\n");
return 1;
}
- int mtd_fd = open(argv[1], O_RDONLY);
+ mtd_fd = open(argv[1], O_RDONLY);
if (mtd_fd == -1) {
perror("open");
exit(-1);
}
- mtd_info_t mtd_info;
- int error = ioctl(mtd_fd, MEMGETINFO, &mtd_info);
+ error = ioctl(mtd_fd, MEMGETINFO, &mtd_info);
if (error == -1) {
perror("ioctl");
exit(-1);
diff --git a/src/udev/mtd_probe/probe_smartmedia.c b/src/udev/mtd_probe/probe_smartmedia.c
index b3cdefc63..feadb5076 100644
--- a/src/udev/mtd_probe/probe_smartmedia.c
+++ b/src/udev/mtd_probe/probe_smartmedia.c
@@ -36,7 +36,13 @@ static const uint8_t cis_signature[] = {
void probe_smart_media(int mtd_fd, mtd_info_t* info)
{
+ int sector_size;
+ int block_size;
+ int size_in_megs;
+ int spare_count;
char* cis_buffer = malloc(SM_SECTOR_SIZE);
+ int offset;
+ int cis_found = 0;
if (!cis_buffer)
return;
@@ -44,11 +50,9 @@ void probe_smart_media(int mtd_fd, mtd_info_t* info)
if (info->type != MTD_NANDFLASH)
goto exit;
- int sector_size = info->writesize;
- int block_size = info->erasesize;
- int size_in_megs = info->size / (1024 * 1024);
- int spare_count;
-
+ sector_size = info->writesize;
+ block_size = info->erasesize;
+ size_in_megs = info->size / (1024 * 1024);
if (sector_size != SM_SECTOR_SIZE && sector_size != SM_SMALL_PAGE)
goto exit;
@@ -66,13 +70,8 @@ void probe_smart_media(int mtd_fd, mtd_info_t* info)
break;
}
-
- int offset;
- int cis_found = 0;
-
for (offset = 0 ; offset < block_size * spare_count ;
offset += sector_size) {
-
lseek(mtd_fd, SEEK_SET, offset);
if (read(mtd_fd, cis_buffer, SM_SECTOR_SIZE) == SM_SECTOR_SIZE){
cis_found = 1;
diff --git a/src/udev/udev.h b/src/udev/udev.h
index bc051c9b6..ecf8cc5fe 100644
--- a/src/udev/udev.h
+++ b/src/udev/udev.h
@@ -164,6 +164,7 @@ const char *udev_builtin_name(enum udev_builtin_cmd cmd);
bool udev_builtin_run_once(enum udev_builtin_cmd cmd);
int udev_builtin_run(struct udev_device *dev, enum udev_builtin_cmd cmd, const char *command, bool test);
void udev_builtin_list(struct udev *udev);
+bool udev_builtin_validate(struct udev *udev);
int udev_builtin_add_property(struct udev_device *dev, bool test, const char *key, const char *val);
/* udev logging */