--- a/source/utils/owrt_smbpasswd.c 2017-10-03 15:57:24.190827000 +0100 +++ a/source/utils/owrt_smbpasswd.c 2017-10-03 16:07:54.862857000 +0100 @@ -108,7 +108,7 @@ } } - fprintf(fp, line); + fprintf(fp, "%s", line); out: if(fp) @@ -134,20 +134,20 @@ p = strchr(t, ':'); if(p && (p - t == strlen(user)) && (strncmp(t, user, strlen(user))) == 0) { - fpos_t r_pos, w_pos; + long int r_pos, w_pos; char t2[256]; - fgetpos(fp, &r_pos); + r_pos = ftell(fp); w_pos = r_pos; - w_pos.__pos -= strlen(t); + w_pos -= strlen(t); while(fgets(t2, 256, fp)) { - fsetpos(fp, &w_pos); + fseek(fp, w_pos, SEEK_SET); fputs(t2, fp); - r_pos.__pos += strlen(t2); - w_pos.__pos += strlen(t2); - fsetpos(fp, &r_pos); + r_pos += strlen(t2); + w_pos += strlen(t2); + fseek(fp, r_pos, SEEK_SET); } - ftruncate(fileno(fp), w_pos.__pos); + ftruncate(fileno(fp), w_pos); break; } }