From c52973a96eeae2c7a7c9f42b599b0fc678f5d7bb Mon Sep 17 00:00:00 2001 From: Kano Date: Wed, 16 Oct 2013 00:26:44 +1100 Subject: [PATCH] klondike - ensure all memcpy use the size of the target --- driver-klondike.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/driver-klondike.c b/driver-klondike.c index 91e4ca90..94038c82 100644 --- a/driver-klondike.c +++ b/driver-klondike.c @@ -464,7 +464,9 @@ static bool klondike_get_stats(struct cgpu_info *klncgpu) kitem = SendCmdGetReply(klncgpu, &kline, 0); if (kitem != NULL) { wr_lock(&(klninfo->stat_lock)); - memcpy((void *)(&(klninfo->status[dev])), (void *)kitem, sizeof(*kitem)); + memcpy((void *)(&(klninfo->status[dev])), + (void *)kitem, + sizeof(klninfo->status[dev])); wr_unlock(&(klninfo->stat_lock)); release_kitem(klncgpu, kitem); kitem = NULL; @@ -533,7 +535,7 @@ static bool klondike_init(struct cgpu_info *klncgpu) kline.cfg.dev = dev; kitem = SendCmdGetReply(klncgpu, &kline, size); if (kitem != NULL) { - memcpy((void *)&(klninfo->cfg[dev]), kitem, sizeof(*kitem)); + memcpy((void *)&(klninfo->cfg[dev]), kitem, sizeof(klninfo->cfg[dev])); applog(LOG_WARNING, "Klondike config (%d: Clk: %d, T:%.0lf, C:%.0lf, F:%d)", dev, K_HASHCLOCK(klninfo->cfg[dev].kline.cfg.hashclock), cvtKlnToC(klninfo->cfg[dev].kline.cfg.temptarget), @@ -810,7 +812,9 @@ static void klondike_flush_work(struct cgpu_info *klncgpu) kitem = SendCmdGetReply(klncgpu, &kline, KSENDHD(0)); if (kitem != NULL) { wr_lock(&(klninfo->stat_lock)); - memcpy((void *)&(klninfo->status[dev]), kitem, sizeof(*kitem)); + memcpy((void *)&(klninfo->status[dev]), + kitem, + sizeof(klninfo->status[dev])); wr_unlock(&(klninfo->stat_lock)); release_kitem(klncgpu, kitem); kitem = NULL; @@ -911,7 +915,7 @@ static bool klondike_send_work(struct cgpu_info *klncgpu, int dev, struct work * KLIST *kitem = SendCmdGetReply(klncgpu, &kline, sizeof(kline.wt)); if (kitem != NULL) { wr_lock(&(klninfo->stat_lock)); - memcpy((void *)&(klninfo->status[dev]), kitem, sizeof(*kitem)); + memcpy((void *)&(klninfo->status[dev]), kitem, sizeof(klninfo->status[dev])); wr_unlock(&(klninfo->stat_lock)); release_kitem(klncgpu, kitem); kitem = NULL;