diff options
author | Tim Potter <tpot@samba.org> | 2000-02-03 23:08:24 +0000 |
---|---|---|
committer | Tim Potter <tpot@samba.org> | 2000-02-03 23:08:24 +0000 |
commit | ae7696117e81bb469fa71f9bc880f6b5aac0724e (patch) | |
tree | c2ee230e6e4df2ff6a708640b30fd8d6eaa36135 /source3/smbd/ipc.c | |
parent | 79601327cb9840153ccf641085eba19a1e32e143 (diff) | |
download | samba-ae7696117e81bb469fa71f9bc880f6b5aac0724e.tar.gz samba-ae7696117e81bb469fa71f9bc880f6b5aac0724e.tar.xz samba-ae7696117e81bb469fa71f9bc880f6b5aac0724e.zip |
Put back lots of missing calls to dos_to_unix(). Thanks to
aono@cc.osaka-kyoiku.ac.jp (Tomoki AONO)
(This used to be commit 176c405d2702a4245561ff56c8eac3c754a0dea3)
Diffstat (limited to 'source3/smbd/ipc.c')
-rw-r--r-- | source3/smbd/ipc.c | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/source3/smbd/ipc.c b/source3/smbd/ipc.c index 3e16dba4f5..b5a6e4ba90 100644 --- a/source3/smbd/ipc.c +++ b/source3/smbd/ipc.c @@ -2055,6 +2055,7 @@ static BOOL api_PrintJobInfo(connection_struct *conn,uint16 vuid,char *param,cha if (isalpha((int)*s)) { pstring name; int l = 0; + while (l<64 && *s) { if (issafe(*s)) name[l++] = *s; s++; @@ -2066,17 +2067,23 @@ static BOOL api_PrintJobInfo(connection_struct *conn,uint16 vuid,char *param,cha fsp = file_find_print(); if (fsp) { - connection_struct *fconn = fsp->conn; - unbecome_user(); - - if (!become_user(fconn,vuid) || - !become_service(fconn,True)) - break; + pstring zfrom,zto; + connection_struct *fconn = fsp->conn; + + unbecome_user(); - if (fsp->conn->vfs_ops.rename(fsp->fsp_name,name) == 0) { - string_set(&fsp->fsp_name,name); - } - break; + if (!become_user(fconn,vuid) || + !become_service(fconn,True)) + break; + + pstrcpy(zfrom, dos_to_unix(fsp->fsp_name,False)); + pstrcpy(zto, dos_to_unix(name,False)); + + if (fsp->conn->vfs_ops.rename(zfrom,zto) == 0) { + string_set(&fsp->fsp_name,name); + } + + break; } } desc.errcode=NERR_Success; |