Changeset 30 in code for trunk


Ignore:
Timestamp:
Nov 17, 2022, 8:53:00 PM (2 years ago)
Author:
fox
Message:

Check index ID characters before making a dir with them

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/cli/pull.ml

    r29 r30  
    8787                then pull_text url dir id
    8888
     89let validate_id_length s = String.length s <= 32
     90
     91let validate_id_chars s = try
     92        String.iter (function 'a'..'z'|'A'..'Z'|'0'..'9'-> () | _ -> raise (Invalid_argument "")) s;
     93        true
     94        with Invalid_argument _ -> false
     95
    8996let pull_index url authors_opt topics_opt =
    9097        let index_url = url ^ "/index.pck" in
     
    96103                | Ok pk when pk.info.id = "" ->
    97104                        Printf.printf "Empty ID index.pck, skipping %s\n" url; false
     105                | Ok pk when not (validate_id_length pk.info.id) ->
     106                        Printf.printf "Index pack ID longer than 32 characters, skipping %s\n" url; false
     107                | Ok pk when not (validate_id_chars pk.info.id) ->
     108                        Printf.printf "Index pack contains invalid ID characters, skipping %s\n" url; false
    98109                | Ok pk ->
    99110                        let dir = Filename.concat Logarion.Peers.text_dir pk.info.id in
Note: See TracChangeset for help on using the changeset viewer.