diff options
author | Andrew Tridgell <tridge@samba.org> | 1998-10-03 13:58:07 +0000 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 1998-10-03 13:58:07 +0000 |
commit | 4d9ab2add20ea8b6435c5b6a96c4d5df86413a8d (patch) | |
tree | 7a74ab6664ccbd8efa50ea78a5d6fe5b5c4c88af /source3/smbwrapper/smbw.c | |
parent | aa7aacacab413ec608fcc8ba2ba5d9cbeaa340d8 (diff) | |
download | samba-4d9ab2add20ea8b6435c5b6a96c4d5df86413a8d.tar.gz samba-4d9ab2add20ea8b6435c5b6a96c4d5df86413a8d.tar.bz2 samba-4d9ab2add20ea8b6435c5b6a96c4d5df86413a8d.zip |
support getcwd() in smbwrapper
(This used to be commit d516ee383c287550a5953cf5ea1cd69cc957e1aa)
Diffstat (limited to 'source3/smbwrapper/smbw.c')
-rw-r--r-- | source3/smbwrapper/smbw.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/source3/smbwrapper/smbw.c b/source3/smbwrapper/smbw.c index e7030a4e37..2842123888 100644 --- a/source3/smbwrapper/smbw.c +++ b/source3/smbwrapper/smbw.c @@ -1598,3 +1598,39 @@ int smbw_rmdir(const char *fname) smbw_busy--; return -1; } + + +/***************************************************** +a wrapper for getcwd() +*******************************************************/ +char *smbw_getcwd(char *buf, size_t size) +{ + smbw_init(); + + if (smbw_busy) { + return __getcwd(buf, size); + } + + smbw_busy++; + + if (!buf) { + if (size <= 0) size = strlen(smb_cwd)+1; + buf = (char *)malloc(size); + if (!buf) { + errno = ENOMEM; + smbw_busy--; + return NULL; + } + } + + if (strlen(smb_cwd) > size-1) { + errno = ERANGE; + smbw_busy--; + return NULL; + } + + safe_strcpy(buf, smb_cwd, size); + + smbw_busy--; + return buf; +} |