1
0
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:
Jeremy Allison 2000-10-26 22:09:22 +00:00
parent b5ac72cc64
commit 9a8749d33a
3 changed files with 10 additions and 7 deletions

View File

@ -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);

View File

@ -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;
}
}

View File

@ -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)) {