diff --git a/src/driver.c b/src/driver.c index d4e91c03..659b4deb 100644 --- a/src/driver.c +++ b/src/driver.c @@ -3,7 +3,7 @@ */ #include - +#include #include #include "nvml.h" @@ -89,7 +89,10 @@ driver_init(struct error *err, struct dxcore_context *dxcore, const char *root, .gid = gid, .nvml_dl = NULL, }; - strcpy(ctx->root, root); + if (strlcpy(ctx->root, root, sizeof(ctx->root)) >= sizeof(ctx->root)) { + error_setx(err, "root path too long (max %zu bytes)", sizeof(ctx->root) - 1); + goto fail; + } if (dxcore->initialized) { memset(ctx->nvml_path, 0, strlen(ctx->nvml_path));