X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fudev%2Flibudev-queue.c;h=48184ddaa61fe0d33eddf6c61ca1356beadba1ad;hp=0e82cb6ae8855e267bf9c996f95942a329857d5e;hb=fc863deadaf07da24f3593fca6c6e09b62cd772c;hpb=3e2147858f21943d5f4a781c60f33ac22c6096ed;ds=sidebyside 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;