Index: src/library/grDevices/src/devPS.c =================================================================== --- src/library/grDevices/src/devPS.c (Revision 71663) +++ src/library/grDevices/src/devPS.c (Revision 71664) @@ -513,13 +513,15 @@ if (!(fp = R_fopen(R_ExpandFileName(buf), "r"))) return 0; } if (GetNextItem(fp, buf, -1, &state)) return 0; /* encoding name */ - strcpy(encname, buf+1); + strncpy(encname, buf+1, 99); + encname[99] = '\0'; if (!isPDF) snprintf(enccode, 5000, "/%s [\n", encname); else enccode[0] = '\0'; if (GetNextItem(fp, buf, 0, &state)) { fclose(fp); return 0;} /* [ */ for(i = 0; i < 256; i++) { if (GetNextItem(fp, buf, i, &state)) { fclose(fp); return 0; } - strcpy(encnames[i].cname, buf+1); + strncpy(encnames[i].cname, buf+1, 39); + encnames[i].cname[39] = '\0'; strcat(enccode, " /"); strcat(enccode, encnames[i].cname); if(i%8 == 7) strcat(enccode, "\n"); } Index: src/library/grDevices/src/devPS.c =================================================================== --- src/library/grDevices/src/devPS.c (Revision 71666) +++ src/library/grDevices/src/devPS.c (Revision 71667) @@ -521,7 +521,7 @@ for(i = 0; i < 256; i++) { if (GetNextItem(fp, buf, i, &state)) { fclose(fp); return 0; } strncpy(encnames[i].cname, buf+1, 39); - encnames[i].cname[39] = '\0'; + encnames[i].cname[39] = '\0'; strcat(enccode, " /"); strcat(enccode, encnames[i].cname); if(i%8 == 7) strcat(enccode, "\n"); }