Changeset 92669 in vbox
- Timestamp:
- Dec 1, 2021 9:14:24 AM (3 years ago)
- svn:sync-xref-src-repo-rev:
- 148565
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Runtime/generic/RTEnvDupEx-generic.cpp
r82968 r92669 53 53 54 54 /* 55 * It's a b ug bugger.55 * It's a big bugger. 56 56 */ 57 size_t cbBuf = _1K; 58 char *pszBuf = (char *)RTMemAlloc(cbBuf); 59 for (;;) 57 size_t cbBuf = _1K; 58 do 60 59 { 60 char *pszBuf = RTStrAlloc(cbBuf); 61 AssertBreak(pszBuf); 62 61 63 rc = RTEnvGetEx(Env, pszVar, pszBuf, cbBuf, NULL); 62 64 if (RT_SUCCESS(rc)) 63 return pszBuf; /* ASSUMES RTMemAlloc can be freed by RTStrFree! */65 return pszBuf; 64 66 67 RTStrFree(pszBuf); 68 69 /* If overflow double the buffer. */ 65 70 if (rc != VERR_BUFFER_OVERFLOW) 66 71 break; 72 cbBuf *= 2; 73 } while (cbBuf < _64M); 67 74 68 if (cbBuf >= 64 * _1M)69 break;70 cbBuf *= 2;71 72 char *pszNew = (char *)RTMemRealloc(pszBuf, cbBuf);73 if (!pszNew)74 break;75 pszBuf = pszNew;76 }77 78 RTMemFree(pszBuf);79 75 return NULL; 80 76 } 81 RT_EXPORT_SYMBOL(RTEnv GetExecEnvP);77 RT_EXPORT_SYMBOL(RTEnvDupEx); 82 78
Note:
See TracChangeset
for help on using the changeset viewer.