summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/printing/printing.c7
-rw-r--r--source3/rpc_server/srv_spoolss_nt.c6
2 files changed, 9 insertions, 4 deletions
diff --git a/source3/printing/printing.c b/source3/printing/printing.c
index 57d0c2b8a3..cfe194ab17 100644
--- a/source3/printing/printing.c
+++ b/source3/printing/printing.c
@@ -168,7 +168,9 @@ static int print_run_command(int snum,char *command,
pstring_sub(syscmd, "%p", p);
standard_sub_snum(snum,syscmd);
-
+
+ /* Convert script args to unix-codepage */
+ dos_to_unix(syscmd, True);
ret = smbrun(syscmd,outfile,False);
DEBUG(3,("Running the command `%s' gave %d\n",syscmd,ret));
@@ -1202,8 +1204,7 @@ BOOL print_queue_purge(struct current_user *user, int snum, int *errcode)
njobs = print_queue_status(snum, &queue, &status);
for (i=0;i<njobs;i++) {
- if (print_access_check(user, snum,
- PRINTER_ACCESS_ADMINISTER)) {
+ if (print_access_check(user, snum, PRINTER_ACCESS_ADMINISTER)) {
print_job_delete1(queue[i].job);
}
}
diff --git a/source3/rpc_server/srv_spoolss_nt.c b/source3/rpc_server/srv_spoolss_nt.c
index bcd9b46256..74cc19eee1 100644
--- a/source3/rpc_server/srv_spoolss_nt.c
+++ b/source3/rpc_server/srv_spoolss_nt.c
@@ -3546,6 +3546,9 @@ static BOOL add_printer_hook(NT_PRINTER_INFO_LEVEL *printer)
printer->info_2->location, driverlocation);
unlink(tmp_file);
+
+ /* Convert script args to unix-codepage */
+ dos_to_unix(command, True);
DEBUG(10,("Running [%s > %s]\n", command,tmp_file));
ret = smbrun(command, tmp_file, False);
DEBUGADD(10,("returned [%d]\n", ret));
@@ -3556,9 +3559,10 @@ static BOOL add_printer_hook(NT_PRINTER_INFO_LEVEL *printer)
}
numlines = 0;
+ /* Get lines and convert them back to dos-codepage */
qlines = file_lines_load(tmp_file, &numlines, True);
DEBUGADD(10,("Lines returned = [%d]\n", numlines));
- DEBUGADD(10,("Unlinking port file [%s]\n", tmp_file));
+ DEBUGADD(10,("Unlinking script output file [%s]\n", tmp_file));
unlink(tmp_file);
if(numlines) {