Changeset 3241 for trunk/src/kmk/kmkbuiltin
- Timestamp:
- Dec 25, 2018, 9:59:03 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/kmk/kmkbuiltin/install.c
r3227 r3241 859 859 create_tempfile(const char *path, char *temp, size_t tsize) 860 860 { 861 char *p; 862 863 (void)strncpy(temp, path, tsize); 864 temp[tsize - 1] = '\0'; 865 if ((p = last_slash(temp)) != NULL) 866 p++; 861 static char s_szTemplate[] = "INS@XXXXXX"; 862 const char *p = last_slash(path); 863 if (p) { 864 size_t cchDir = ++p - path; 865 if (cchDir + sizeof(s_szTemplate) <= tsize) { 866 memcpy(temp, path, cchDir); 867 memcpy(&temp[cchDir], s_szTemplate, sizeof(s_szTemplate)); 868 } else 869 return EOVERFLOW; 870 } else if (tsize >= sizeof(s_szTemplate)) 871 memcpy(temp, s_szTemplate, sizeof(s_szTemplate)); 867 872 else 868 p = temp; 869 (void)strncpy(p, "INS@XXXX", &temp[tsize - 1] - p); 870 temp[tsize - 1] = '\0'; 873 return EOVERFLOW; 874 871 875 return (mkstemp(temp)); 872 876 }
Note:
See TracChangeset
for help on using the changeset viewer.