mirror of
https://github.com/samba-team/samba.git
synced 2025-02-04 17:47:26 +03:00
Added John Reillys patch for error code returns from clean_up_printer_driver_strunct()
calls. Jeremy. (This used to be commit f81a2a03bf435e65e7484ab021f86a8a4f62b656)
This commit is contained in:
parent
b5ac72cc64
commit
9a8749d33a
@ -1727,7 +1727,7 @@ BOOL delete_a_form(nt_forms_struct **list, UNISTR2 *del_name, int *count, uint32
|
||||
void update_a_form(nt_forms_struct **list, const FORM *form, int count);
|
||||
int get_ntdrivers(fstring **list, char *architecture, uint32 version);
|
||||
BOOL get_short_archi(char *short_archi, char *long_archi);
|
||||
void clean_up_driver_struct(NT_PRINTER_DRIVER_INFO_LEVEL driver_abstract, uint32 level);
|
||||
uint32 clean_up_driver_struct(NT_PRINTER_DRIVER_INFO_LEVEL driver_abstract, uint32 level);
|
||||
BOOL move_driver_to_download_area(NT_PRINTER_DRIVER_INFO_LEVEL driver_abstract, uint32 level, struct current_user *user, uint32 *perr);
|
||||
uint32 get_a_printer_driver_9x_compatible(pstring line, fstring model);
|
||||
uint32 del_a_printer(char *sharename);
|
||||
|
@ -513,7 +513,7 @@ static uint32 clean_up_driver_struct_level_3(NT_PRINTER_DRIVER_INFO_LEVEL_3 *dri
|
||||
*/
|
||||
if ((driver->cversion = get_correct_cversion(architecture,
|
||||
driver->driverpath)) == -1)
|
||||
return ERROR_INVALID_PARAMETER; /* Not the best error. Fix JRR */
|
||||
return NT_STATUS_FILE_INVALID; /* Not the best error. Fix JRR */
|
||||
|
||||
return NT_STATUS_NO_PROBLEMO;
|
||||
}
|
||||
@ -576,30 +576,32 @@ static uint32 clean_up_driver_struct_level_6(NT_PRINTER_DRIVER_INFO_LEVEL_6 *dri
|
||||
*/
|
||||
if ((driver->version = get_correct_cversion(architecture,
|
||||
driver->driverpath)) == -1)
|
||||
return ERROR_INVALID_PARAMETER; /* Not the best error. Fix JRR */
|
||||
return NT_STATUS_FILE_INVALID; /* Not the best error. Fix JRR */
|
||||
|
||||
return NT_STATUS_NO_PROBLEMO;
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
****************************************************************************/
|
||||
void clean_up_driver_struct(NT_PRINTER_DRIVER_INFO_LEVEL driver_abstract, uint32 level)
|
||||
uint32 clean_up_driver_struct(NT_PRINTER_DRIVER_INFO_LEVEL driver_abstract, uint32 level)
|
||||
{
|
||||
switch (level) {
|
||||
case 3:
|
||||
{
|
||||
NT_PRINTER_DRIVER_INFO_LEVEL_3 *driver;
|
||||
driver=driver_abstract.info_3;
|
||||
clean_up_driver_struct_level_3(driver);
|
||||
return clean_up_driver_struct_level_3(driver);
|
||||
break;
|
||||
}
|
||||
case 6:
|
||||
{
|
||||
NT_PRINTER_DRIVER_INFO_LEVEL_6 *driver;
|
||||
driver=driver_abstract.info_6;
|
||||
clean_up_driver_struct_level_6(driver);
|
||||
return clean_up_driver_struct_level_6(driver);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
return ERROR_INVALID_PARAMETER;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -4722,7 +4722,8 @@ uint32 _spoolss_addprinterdriver(pipes_struct *p, const UNISTR2 *server_name,
|
||||
convert_printer_driver_info(info, &driver, level);
|
||||
|
||||
DEBUG(5,("Cleaning driver's information\n"));
|
||||
clean_up_driver_struct(driver, level);
|
||||
if ((err = clean_up_driver_struct(driver, level)) != NT_STATUS_NO_PROBLEMO )
|
||||
goto done;
|
||||
|
||||
DEBUG(5,("Moving driver to final destination\n"));
|
||||
if(!move_driver_to_download_area(driver, level, &user, &err)) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user